#include <stdio.h>
#include<stdlib.h>

#define max 20

int arr[max][max], visited[max], recstack[max];
int n;

int hascycle(int u){
    visited [u]=1;
    recstack[u]=1;
    
    for(int v=0;v<n;v++){
        if(arr[u][v]){
            if(!visited[v] && hascycle(v))
               return 1;
            else if(recstack[v])
               return 1;
        }
    }
    recstack[u] =0;
    return 0;
}

int main(){
    int m,u,v;
    scanf("%d",&n);
    if(n<0){
        printf("Invalid input");
        return 0;
    }
    scanf("%d",&m);
    if(m<0){
        printf("Invalid input");
        return 0;
    }
    for(int i=0;i<m;i++){
        scanf("%d %d",&u &v);
        arr[u][v] = 1;
    }
    for(int i=0;i<m;i++){
        if(!visited[i] && hascycle(i)){
            printf("Impossible\n");
            return 0;
        }
    }
    printf("possible\n");
    return 0;
}