#include #include #include #include #include #include using namespace std; #define ll long long int #define ull unsigned long long int #define beg begin() #define end end() #define size size() #define pb push_back #define MOD 1000000007 #define PI 3.14 #define INF 1000000 inline void update(vector< vector >& dist,vector< vector > >& parent,ll i,ll j,ll n){ if(i>=n || j>=n || i<0 || j<0) return; ll uli = i-2,ulj = j-1; if((uli>=0 && uli=0 && uljdist[i][j]+1){ dist[uli][ulj] = dist[i][j]+1; parent[uli][ulj] = make_pair(i,j); update(dist,parent,i-2,j-1,n); } } ll uri = i-2, urj = j+1; if((uri>=0 && uri=0 && urjdist[i][j]+1){ dist[uri][urj]=dist[i][j]+1; parent[uri][urj] = make_pair(i,j); update(dist,parent,uri,urj,n); } } ll ri = i,rj = j+2; if((ri>=0 && ri=0 && rjdist[i][j]+1){ dist[ri][rj] = dist[i][j]+1; parent[ri][rj] = make_pair(i,j); update(dist,parent,ri,rj,n); } } ll lri = i+2, lrj = j+1; if((lri>=0 && lri=0 && lrjdist[i][j]+1){ dist[lri][lrj]=dist[i][j]+1; parent[lri][lrj] = make_pair(i,j); update(dist,parent,lri,lrj,n); } } ll lli = i+2,llj = j-1; if((lli>=0 && lli=0 && lljdist[i][j]+1){ dist[lli][llj]=dist[i][j]+1; parent[lli][llj] = make_pair(i,j); update(dist,parent,lli,llj,n); } } ll li = i, lj = j-2; if((li>=0 && li=0 && ljdist[i][j]+1){ dist[li][lj]=dist[i][j]+1; parent[li][lj] = make_pair(i,j); update(dist,parent,li,lj,n); } } } vectorsteps; inline void print(ll i,ll j,ll x,ll y){ if(i == x){ if(j == y+2) steps.pb("R"); if(j == y-2) steps.pb("L"); } if(i == x-2){ if(j==y+1) steps.pb("UR"); if(j==y-1) steps.pb("UL"); } if(i == x+2){ if(j==y+1) steps.pb("LR"); if(j==y-1) steps.pb("LL"); } } int main(){ ll n; cin>>n; ll si,sj,ei,ej; cin>>si>>sj>>ei>>ej; vector< vector >dist(n,vector(n,INF)); vector< vector > > parent (n,vector< pair >(n,make_pair(-1,-1))); dist[si][sj]=0; update(dist,parent,si,sj,n); if(dist[ei][ej]==INF){ cout<<"Impossible"<