#include using namespace std; vector v[100000]; int lvl[100000]; int vis[100000]; int trace[100000]; int ne[100000]; string str[100000]; int bfs(int s,int dest) { vis[s]=1; lvl[s]=0; queue q; q.push(s); while(!q.empty()) { int p=q.front(); q.pop(); for(int i=0;i>n; for(int i=0;i=0 && j-1>=0) v[x].push_back((i-2)*200+(j-1)); if(i-2>=0 && j+1=0) v[x].push_back((i+2)*200+(j-1)); if(j-2>=0) v[x].push_back(i*200+(j-2)); } } /* for(int i=0;i>a>>b>>c>>d; int h=bfs(a*200+b,c*200+d); if(h==-1) { cout<<"Impossible"; } else { int l=c*200+d; int r=1; while(1) { ne[r++]=trace[l]; l=trace[l]; if(l==a*200+b) { break; } } ne[0]=c*200+d; cout<=0;i--) cout<