#include <bits/stdc++.h>
#include <algorithm>
#define N 110
#define pb push_back
#define fi first
#define se second
#define si size()
#define ll long long
#define mp make_pair
#define iter ::iterator
#define all(v) v.begin(), v.end()
#define READ(f) freopen (f, "r", stdin)
#define WRITE(f) freopen (f, "w", stdout)
#define pp pop_back
#define mapiter map<int, int>::iterator
#define pii pair<int, int>
#define forn(i, n) for(int i = 0; i < n; ++i)
#define forn1(i, n) for(int i = 0; i <= n; ++i)
#define forr(i, x, n) for(int i = x; i <= n; ++i)
#define r0 return 0
#define barnarnar ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
const int inf = 1e9 + 1;
const ll modw = 1e9 + 7;
using namespace std;
ll dp[N][N];
int p[N][N];
ll a[N][N];
void bananaout(int t)
{
if(t == 1)
cout << "D";
else
cout << "R";
return;
}
int main()
{
ll n, m;
cin >> n >> m;
forn(i, n) forn(j, m) cin >> a[i][j];
dp[0][0] = a[0][0];
forn(i, n)
{
forn(j, m)
{
if(i == 0 && j == 0) continue;
ll t = -inf;
int tt;
if(i > 0 && dp[i - 1][j] > t)
{
t = dp[i - 1][j];
tt = 0;
}
if(j > 0 && t < dp[i][j - 1])
{
t = dp[i][j - 1];
tt = 1;
}
t += a[i][j];
p[i][j] = tt;
dp[i][j] = t;
}
}
ll x = n - 1, y = m - 1;
cout << dp[x][y] << endl;
bananaout(p[x][y]);
if(x + y != 1) cout << " ";
while(1)
{
if(p[x][y] == 0) x -= 1;
else y -= 1;
if(x == 0 && y == 0) break;
bananaout(p[x][y]);
if(x + y != 1) cout << " ";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNkZWZpbmUgTiAxMTAKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIHNpIHNpemUoKQojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIGl0ZXIgOjppdGVyYXRvcgojZGVmaW5lIGFsbCh2KSB2LmJlZ2luKCksIHYuZW5kKCkKI2RlZmluZSBSRUFEKGYpIGZyZW9wZW4gKGYsICJyIiwgc3RkaW4pCiNkZWZpbmUgV1JJVEUoZikgZnJlb3BlbiAoZiwgInciLCBzdGRvdXQpCiNkZWZpbmUgcHAgcG9wX2JhY2sKI2RlZmluZSBtYXBpdGVyIG1hcDxpbnQsIGludD46Oml0ZXJhdG9yCiNkZWZpbmUgcGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgZm9ybihpLCBuKSBmb3IoaW50IGkgPSAwOyBpIDwgbjsgKytpKQojZGVmaW5lIGZvcm4xKGksIG4pIGZvcihpbnQgaSA9IDA7IGkgPD0gbjsgKytpKQojZGVmaW5lIGZvcnIoaSwgeCwgbikgZm9yKGludCBpID0geDsgaSA8PSBuOyArK2kpCiNkZWZpbmUgcjAgcmV0dXJuIDAKI2RlZmluZSBiYXJuYXJuYXIgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwogCmNvbnN0IGludCBpbmYgPSAxZTkgKyAxOwpjb25zdCBsbCBtb2R3ID0gMWU5ICsgNzsKIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbGwgZHBbTl1bTl07CmludCBwW05dW05dOwpsbCBhW05dW05dOwoKdm9pZCBiYW5hbmFvdXQoaW50IHQpCnsKCWlmKHQgPT0gMSkKCQljb3V0IDw8ICJEIjsKCWVsc2UKCQljb3V0IDw8ICJSIjsKCXJldHVybjsKfQoKaW50IG1haW4oKQp7CglsbCBuLCBtOwoJY2luID4+IG4gPj4gbTsKCWZvcm4oaSwgbikJZm9ybihqLCBtKQljaW4gPj4gYVtpXVtqXTsKCWRwWzBdWzBdID0gYVswXVswXTsKCWZvcm4oaSwgbikKCXsKCQlmb3JuKGosIG0pCgkJewoJCQlpZihpID09IDAgJiYgaiA9PSAwKQljb250aW51ZTsKCQkJbGwgdCA9IC1pbmY7CgkJCWludCB0dDsKCQkJaWYoaSA+IDAgJiYgZHBbaSAtIDFdW2pdID4gdCkKCQkJewoJCQkJdCA9IGRwW2kgLSAxXVtqXTsKCQkJCXR0ID0gMDsKCQkJfQoJCQlpZihqID4gMCAmJiB0IDwgZHBbaV1baiAtIDFdKQoJCQl7CgkJCQl0ID0gZHBbaV1baiAtIDFdOwoJCQkJdHQgPSAxOwoJCQl9CgkJCXQgKz0gYVtpXVtqXTsKCQkJcFtpXVtqXSA9IHR0OwoJCQlkcFtpXVtqXSA9IHQ7CgkJfQoJfQoJbGwgeCA9IG4gLSAxLCB5ID0gbSAtIDE7Cgljb3V0IDw8IGRwW3hdW3ldIDw8IGVuZGw7CgliYW5hbmFvdXQocFt4XVt5XSk7CglpZih4ICsgeSAhPSAxKQljb3V0IDw8ICIgIjsKCXdoaWxlKDEpCgl7CgkJaWYocFt4XVt5XSA9PSAwKQl4IC09IDE7CgkJZWxzZQl5IC09IDE7CgkJaWYoeCA9PSAwICYmIHkgPT0gMCkgICAgYnJlYWs7CgkJYmFuYW5hb3V0KHBbeF1beV0pOwoJCWlmKHggKyB5ICE9IDEpCWNvdXQgPDwgIiAiOwoJfQogICAgcmV0dXJuIDA7Cn0K