#include #define ll long long int using namespace std; ll dx[7]={0,-2,-2,0,2,2,0}; ll dy[7]={-2,-1,1,2,1,-1,-2}; ll n; map mp; inline bool valid(ll x,ll y) { if(x>=0 && x=0 && y>n; ll sx,sy,Dx,Dy; cin>>sx>>sy>>Dx>>Dy; bool vis[n][n]; ll dist[n][n]; memset(vis,false,sizeof(vis)); pair baba[n][n]; queue > q; q.push({sx,sy}); dist[sx][sy]=0; baba[sx][sy]={sx,sy}; while(!q.empty()) { ll X=q.front().first,Y=q.front().second; q.pop(); if(X==Dx && Y==Dy) break; for(ll i=1;i<7;i++) { ll nx=X+dx[i],ny=Y+dy[i]; if(valid(nx,ny)) { if(!vis[nx][ny]) { baba[nx][ny]={X,Y}; vis[nx][ny]=true; dist[nx][ny]=dist[X][Y]+1; q.push({nx,ny}); } } } } if(!vis[Dx][Dy]) cout<<"Impossible"; else { cout< res; while(Dx!=sx || Dy!=sy) { ll gx=baba[Dx][Dy].first,gy=baba[Dx][Dy].second; res.push(doit(gx,gy,Dx,Dy)); Dx=gx; Dy=gy; } while(!res.empty()) { cout<