#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <string>
#include <sstream>
#include <cstring>
#include <cctype>
#include <cmath>
#include <vector>
#include <set>
#include <bitset>
#include <map>
#include <stack>
#include <queue>
#include <ctime>
#include <cassert>
#define _for(i,a,b) for(int i=(a);i<(b);++i)
#define _rep(i,a,b) for(int i=(a);i<=(b);++i)
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long LL;
inline int read_int(){
    int t=0;bool sign=false;char c=getchar();
    while(!isdigit(c)){sign|=c=='-';c=getchar();}
    while(isdigit(c)){t=(t<<1)+(t<<3)+(c&15);c=getchar();}
    return sign?-t:t;
}
inline LL read_LL(){
    LL t=0;bool sign=false;char c=getchar();
    while(!isdigit(c)){sign|=c=='-';c=getchar();}
    while(isdigit(c)){t=(t<<1)+(t<<3)+(c&15);c=getchar();}
    return sign?-t:t;
}
inline char get_char(){
    char c=getchar();
    while(c==' '||c=='\n'||c=='\r')c=getchar();
    return c;
}
inline void write(LL x){
    char c[21],len=0;
    if(!x)return putchar('0'),void();
    if(x<0)x=-x,putchar('-');
    while(x)c[++len]=x%10,x/=10;
    while(len)putchar(c[len--]+48);
}
inline void space(LL x){write(x),putchar(' ');}
inline void enter(LL x){write(x),putchar('\n');}
LL cal(LL n,LL p){
	int pos=3;
	LL ans=0;
	while(p>0){
		LL t=n;
		while(t>=p){
			t-=p;
			ans++;
		}
		if(pos==3)pos=4;
		else pos=3;
		n=p;
		p=t;
	}
	return ans+n;
}
int main()
{
//	freopen("test.in","r",stdin);
//	freopen("test.out","w",stdout);
	LL n=read_LL();
	LL v=n*2/(sqrt(5)+1);
	for(LL i=max(v-20,0LL);i<=min(v+20,n);i++){
		if(cal(n,i)<125){
			LL p=i;
			stack<int> s;
			int pos=3;
			while(p>0){
				LL t=n;
				while(t>=p){
					t-=p;
					s.push(pos);
				}
				if(pos==3)pos=4;
				else pos=3;
				n=p;
				p=t;
			}
			enter(s.size()+n);
			LL tn=0,tp=0;
			_for(i,0,n){
				if(pos==3){
					tn++;
				}
				else
				tp++;
				enter(pos-2);
			}
			while(!s.empty()){
				enter(s.top());
				if(s.top()==3)
				tn=tn+tp;
				else
				tp=tn+tp;
				s.pop();
			}
			return 0;
		}
	}
	return 0;
}
#include <bits/stdc++.h>
using namespace std;

int main() {
  string a = "";
  int si, sj, x;
  cin >> si >> sj;
  set<int> s;
  map<pair<int, int>, pair<int, int>> m;
  map<int, int> t;
  for (int i = 0; i < 50; i++) {
    for (int j = 0; j < 50; j++) {
      cin >> x;
      m[make_pair(i, j)] = make_pair(x, 0);
      if (t.count(x)) {
        t.at(x)++;
      }
      else {
        t[x] = 1;
      }
    }
  }
  s.insert(m.at(make_pair(si, sj)).first);
  for (int i = 0; i < 50; i++) {
    for (int j = 0; j < 50; j++) {
      cin >> x;
      m.at(make_pair(i, j)).second = x;
    }
  }
  if (si > 24 && sj > 24) {
    for (int i = 0; i < 2499; i++) {
      if (si != 0 && !(s.count(m.at(make_pair(si - 1, sj)).first))) {
      	s.insert(m.at(make_pair(si - 1, sj)).first);
	    a += "U";
	    si--;
      }
      else if (sj != 0 && !(s.count(m.at(make_pair(si, sj - 1)).first))) {
        s.insert(m.at(make_pair(si, sj - 1)).first);
        a += "L";
        sj--;
      }
      else if (si != 49 && !(s.count(m.at(make_pair(si + 1, sj)).first))) {
	    s.insert(m.at(make_pair(si + 1, sj)).first);
        a += "D";
        si++;
      }
      else if (sj != 49 && !(s.count(m.at(make_pair(si, sj + 1)).first))) {
        s.insert(m.at(make_pair(si, sj + 1)).first);
        a += "R";
        sj++;
      }
      else {
        break;
      }
    }
  }
  else if (si > 24 && sj < 25) {
    for (int i = 0; i < 2499; i++) {
      if (si != 0 && !(s.count(m.at(make_pair(si - 1, sj)).first))) {
      	s.insert(m.at(make_pair(si - 1, sj)).first);
	    a += "U";
	    si--;
      }
      else if (sj != 49 && !(s.count(m.at(make_pair(si, sj + 1)).first))) {
        s.insert(m.at(make_pair(si, sj + 1)).first);
        a += "R";
        sj++;
      }
      else if (si != 49 && !(s.count(m.at(make_pair(si + 1, sj)).first))) {
	    s.insert(m.at(make_pair(si + 1, sj)).first);
        a += "D";
        si++;
      }
      else if (sj != 0 && !(s.count(m.at(make_pair(si, sj - 1)).first))) {
        s.insert(m.at(make_pair(si, sj - 1)).first);
        a += "L";
        sj--;
      }
      else {
        break;
      }
    }
  }
  else if (si < 25 && sj < 25) {
    for (int i = 0; i < 2499; i++) {
      if (si != 49 && !(s.count(m.at(make_pair(si + 1, sj)).first))) {
	    s.insert(m.at(make_pair(si + 1, sj)).first);
        a += "D";
        si++;
      }
      else if (sj != 49 && !(s.count(m.at(make_pair(si, sj + 1)).first))) {
        s.insert(m.at(make_pair(si, sj + 1)).first);
        a += "R";
        sj++;
      }
      else if (si != 0 && !(s.count(m.at(make_pair(si - 1, sj)).first))) {
      	s.insert(m.at(make_pair(si - 1, sj)).first);
	    a += "U";
	    si--;
      }
      else if (sj != 0 && !(s.count(m.at(make_pair(si, sj - 1)).first))) {
        s.insert(m.at(make_pair(si, sj - 1)).first);
        a += "L";
        sj--;
      }
      else {
        break;
      }
    }
  }
  else {
    for (int i = 0; i < 2499; i++) {
	  if (si != 49 && !(s.count(m.at(make_pair(si + 1, sj)).first))) {
	    s.insert(m.at(make_pair(si + 1, sj)).first);
        a += "D";
        si++;
      }
      else if (sj != 0 && !(s.count(m.at(make_pair(si, sj - 1)).first))) {
        s.insert(m.at(make_pair(si, sj - 1)).first);
        a += "L";
        sj--;
      }
      else if (si != 0 && !(s.count(m.at(make_pair(si - 1, sj)).first))) {
      	s.insert(m.at(make_pair(si - 1, sj)).first);
	    a += "U";
	    si--;
 	  }
      else if (sj != 49 && !(s.count(m.at(make_pair(si, sj + 1)).first))) {
        s.insert(m.at(make_pair(si, sj + 1)).first);
        a += "R";
        sj++;
      }
      else {
        break;
      }
    }
  }
  cout << a << endl;
}
