//Priyanshu Kumar : IIIT Allahabad #include using namespace std; #define ull unsigned long long int #define ll long long int #define MAX 205 #define MOD 1000000007 #define sz size() #define ln length() #define pb push_back #define mp make_pair #define fi first #define se second #define si(n) scanf("%d",&n) #define sl(n) scanf("%lld",&n) #define pi(n) printf("%d",n) #define pin(n) printf("%d\n",n); #define pl(n) printf("%lld",n) #define pln(n) printf("%lld\n",n); #define FUCK_YEAH ios_base::sync_with_stdio(false);cin.tie(NULL) inline ll gcd(ll x,ll y){return x%y==0?y:gcd(y,x%y);} inline ll lcm(ll x,ll y){return x*(y/gcd(x,y));} inline ll powmod(ll a,ll b,ll mod) { ll res=1; a%=mod; assert(b>=0); for(;b;b>>=1) { if(b&1)res=res*a%mod; a=a*a%mod; } return res; } inline ll mulmod(ll a, ll b, ll c) { if(!b)return 0; ll x = mulmod(a, b/2, c); if (b & 1)return (x+x+a)%c; return (x+x)%c; } ll vis[MAX][MAX]; string par[MAX][MAX]; pair realpar[MAX][MAX]; ll n,a,b,c,d; ll xcor[] = {-2,-2,0,2,2,0}; ll ycor[] = {-1,1,2,1,-1,-2}; string moves[] = {"UL","UR","R","LR","LL","L"}; void bfs() { queue > q; q.push(mp(a,b)); vis[a][b] = 1; par[a][b] = "XXX"; realpar[a][b] = mp(a,b); while(!q.empty()) { pair p = q.front(); q.pop(); for(int i = 0; i < 6; i++) { int xx = p.fi + xcor[i]; int yy = p.se + ycor[i]; if(xx >= 1 && yy >= 1 && xx <= n && yy <= n && vis[xx][yy] == 0) { vis[xx][yy] = 1; realpar[xx][yy] = p; par[xx][yy] = moves[i]; q.push(mp(xx,yy)); } } } } int main() { FUCK_YEAH; cin >> n >> a >> b >> c >> d; a++;b++;c++;d++; bfs(); if(vis[c][d] == 0) { cout << "Impossible\n"; } else { vector v; while(par[c][d] != "XXX") { v.pb(par[c][d]); pair tmp = realpar[c][d]; c = tmp.fi; d= tmp.se; } reverse(v.begin(),v.end()); cout << v.size() << endl; for(int i=0;i