import java.util.*; class graph{ private int n; private LinkedList adj[][]; private int board[][]; private int row[]={-2,-2,0,0,2,2};// UL UL L R LL LR private int col[]={-1,1,-2,2,-1,1}; private int parent[][][]; graph(int n){ this.n=n; board=new int[n][n];//nodes parent =new int[n][n][2]; for(int i=0;i q=new LinkedList(); q.add(start_x); q.add(start_y); parent[start_x][start_y][0]=999; parent[start_x][start_y][1]=999; board[start_x][start_y]=0;// source zero while(q.size()>0){ int parent_x=q.poll(); int parent_y=q.poll(); for(int i=0;i<6;i++){ int child_x=parent_x+row[i]; int child_y=parent_y+col[i]; if(child_x>=0 && child_x=0 && child_y=0;i--){ System.out.print(path[i]+" "); } } else System.out.println("Impossible"); } } class mainclass{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int start_x=sc.nextInt(),start_y=sc.nextInt(),end_x=sc.nextInt(),end_y=sc.nextInt(); graph g=new graph(n); g.bfs(start_x,start_y,end_x,end_y); } }