//** aman**// #include #define MIN(a,b,c) min(min(a,b),c) #define MAX(a,b,c) max(max(a,b),c) #define ll long long #define itr vector::iterator #define pb push_back #define mp make_pair #define pii pair #define vi vector #define all(a) (a).begin(),(a).end() #define F first #define S second #define mem(a,b) memset(a,b,sizeof(a)) #define sz size() #define hell 1000000007 #define endl '\n' #define rep(i,a,b) for(i=a;i=b;i--) #define Vit std::vector:: iterator #define Sit std::set:: iterator #define Mit std::map:: iterator #define lb lower_bound #define ub upper_bound #define bs binary_search #define tr(container, it) for(typeof(container.begin()) it = container.begin(); it != container.end(); it++) using namespace std; int n;int vis[205][205]={0}; int X,Y,l=0,m1,m2,k=0; stack v; vector vv; void dfs(int x,int y) { vis[x][y]=1;k++; if(x==X&&y==Y) {l=1; if(l==1) { for(int i=0;i=1&&y-2>=1&&vis[x-1][y-2]!=1){v.push("UL");dfs(x-1,y-2);} if(x+1<=n&&y-2>=1&&vis[x+1][y-2]!=1){v.push("UR");dfs(x+1,y-2);} if(x+2<=n&&vis[x+2][y]!=1){v.push("R");dfs(x+2,y);} if(x+1<=n&&y+2<=n&&vis[x+1][y+2]!=1){v.push("LR");dfs(x+1,y+2);} if(x-1>=n&&y+2<=n&&vis[x-1][y+2]!=1){v.push("LL");dfs(x-1,y+2);} if(x-2>=1&&vis[x-2][y]!=1){v.push("L");dfs(x-2,y);} if(!(m1==x&&m2==y))vis[x][y]=0; if(v.size()!=0)v.pop(); } int main() { cin>>n; int x,y;cin>>x>>y>>X>>Y;m1=x,m2=y; dfs(x,y); if(l==0)cout<<"impossible"<