#include <bits/stdc++.h>
#define int long long
#define xx first
#define yy second
using namespace std;
const int N = 110;
typedef pair<int , int> PII;
int n, m, a, b, c, h;
char g[N][N];
char path[4] = {'D','L','R','U'};
string path_str[50][50];
int d[N][N];
int dx[4] = {1,0,0,-1}, dy[4] = {0,-1,1,0 };
// 定义DFS函数
void dfs(int x, int y, string cur_path) {
// 如果已经到达目标位置,则更新结果并返回
if (x == n && m == y) {
path_str[x][y] = cur_path;
return;
}
// 遍历四个方向
for (int i = 0; i < 4; i++) {
int nx = x + dx[i];
int ny = y + dy[i];
// 判断是否在合法范围内且未被访问过且可以通过
if (nx >= 1 && nx <= n && ny >= 1 && ny <= m && g[nx][ny] == '0' && d[nx][ny] == -1) {
// 标记已访问
d[nx][ny] = d[x][y] + 1;
// 递归进入下一层
dfs(nx, ny, cur_path + path[i]);
}
}
}
void solve() {
cin>>n>>m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
cin >> g[i][j];
// 初始化
memset(d, -1, sizeof(d));
d[1][1] = 0;
// 调用DFS函数
dfs(1, 1, "");
// 输出结果
cout<<path_str[n][m]<<endl;
}
signed main() {
int t = 1;
// cin >> t;
while (t--) solve();
return 0;
}