#include using namespace std; #define mod 1000000007 #define rep(i,n) for(i=0;i #define pic pair #define vi vector< ll > #define vvi vector< vi > #define vpi vector< pii > #define vvpi vector< vpi > #define st set > #define mst multiset > #define in insert #define sz size #define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0) #define mapp map #define ppii pair< pii, pii > #define que queue< ll > #define deq queue< ll > #define mpit map :: iterator #define mpins(x,y) insert(pair (x, y)) #define stk stack< ll > queue < pii > q; ll visited[200][200]; ll movement[200][200]; ll parent[200][200][2]; ll level[200][200]; vector < string > ans; int main() { ll n; cin>>n; ll i1,j1,i2,j2; cin>>i1>>j1>>i2>>j2; memset(visited,0,sizeof(visited)); q.push(mp(i1,j1)); visited[i1][j1]=1; parent[i1][j1][1]=-1; parent[i1][j1][0]=-1; level[i1][j1]=0; movement[i1][j1]=-1; while(!q.empty()) { pii pp=q.front(); q.pop(); ll i=pp.fi; ll j=pp.sec; if((i-2)>-1 and (j-1)>-1 and visited[i-2][j-1]==0) { parent[i-2][j-1][0]=i; parent[i-2][j-1][1]=j; movement[i-2][j-1]=5; level[i-2][j-1]=1+level[i][j]; visited[i-2][j-1]=1; q.push(mp(i-2,j-1)); } if((i-2)>-1 and (j+1)-1 and visited[i+2][j-1]==0) { parent[i+2][j-1][0]=i; parent[i+2][j-1][1]=j; movement[i+2][j-1]=3; level[i+2][j-1]=1+level[i][j]; visited[i+2][j-1]=1; q.push(mp(i+2,j-1)); } if((j-2)>-1 and visited[i][j-2]==0) { parent[i][j-2][0]=i; parent[i][j-2][1]=j; movement[i][j-2]=4; level[i][j-2]=1+level[i][j]; visited[i][j-2]=1; q.push(mp(i,j-2)); } if((i-2)>-1 and (j-1)>-1 and visited[i-2][j-1]==0) { parent[i-2][j-1][0]=i; parent[i-2][j-1][1]=j; movement[i-2][j-1]=5; level[i-2][j-1]=1+level[i][j]; visited[i-2][j-1]=1; q.push(mp(i-2,j-1)); } } if(visited[i2][j2]==0) cout<<"Impossible"; else { cout<=0;i--) { cout<