#include // KEEP IT UP>>>>> using namespace std; struct pixel { int x,y; int d; // int px,py; vector v; // queue p; //vector moves; }; bool insideBorders(int x,int y,int n) { if(x<=n && x>=0 && y>=0 && y<=n) return true; return false; } string findName(int i) { string name; switch(i) { case -1: name ="UL";break; case -3: name="UR";break; case -2: name="R";break; case 1: name ="LR";break; case 3: name="LL";break; case 2: name="L";break; } return name; } //apply bfs to code vector moves; int minstepbfs(int kx,int ky,int tx,int ty,int n) { //listing possible moves //int moves=0; int xarr[]={-2, -2, 0, 2, 2, 0}; int yarr[]={-1, 1, 2, 1, -1, -2}; bool vis[n+1][n+1]; for(int i=0;i<=n;i++) { for(int j=0;j<=n;j++) { vis[i][j]=false; } } //map parent; queue q; //queue p; pixel end; pixel c,t; c.x=kx; c.y=ky; c.d=0; q.push(c); // parent.insert(make_pair(c,root)); vis[kx][ky]=true; while(!q.empty()) { t=q.front(); q.pop(); vis[t.x][t.y]=true; /* if(!visited[t.x][t.y]) { visited[t.x][t.y]=true; } */ if(t.x==tx && t.y==ty) { //cout<>n; int kx,ky; cin>>kx>>ky; int tx,ty; cin>>tx>>ty; //vector moves; int res=minstepbfs(kx,ky,tx,ty,n); if(res==-1) { cout<<"Impossible"<=0;y--) { cout<