#include using namespace std; typedef long long ll; typedef pair pii; template using V = vector; #define SYNC ios_base::sync_with_stdio(0);cin.tie(0); #define rep(i,b) for(int i=0;i /* Equinox */ int is,js,ie,je; pii dist[201][201]; priority_queue,greater > q; V moves={{-2,-1},{-2,1},{0,2},{2,1},{2,-1},{0,-2}}; V type={"UL","UR","R","LR","LL","L"}; int32_t main(){SYNC int n; memset(dist,0x3F,sizeof dist); cin>>n; cin>>is>>js>>ie>>je; dist[ie][je].fi=0; q.push({0,{ie,je}}); while(!q.empty()){ auto cur=q.top(); q.pop(); auto cor=cur.se; if(dist[cur.se.fi][cur.se.se].fi=n) continue; if(cor.se+i.se<0 || cor.se+i.se >=n) continue; if(dist[cor.fi+i.fi][cor.se+i.se].fi>(cur.fi+1)){ q.push({cur.fi+1,{cor.fi+i.fi,cor.se+i.se}}); dist[cor.fi+i.fi][cor.se+i.se].fi=cur.fi+1; dist[cor.fi+i.fi][cor.se+i.se].se=j; } } } if(dist[is][js].fi==inf){ cout<<"Impossible"; return 0; } int cd=dist[is][js].fi; pii cur={is,js};; cout<=n) continue; if(cur.se+j.se<0 || cur.se+j.se >=n) continue; if(dist[cur.fi+j.fi][cur.se+j.se].fi