#include <bits/stdc++.h>
using namespace std;
#define int long long
int t;
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> t;
while(t--){
int n, m;
cin >> n >> m;
vector<vector<int>> a(n+1, vector<int>(m+1));
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin >> a[i][j];
vector<vector<int>> row(n+1, vector<int>(m+1,0));
int S = 0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)
row[i][j] = row[i][j-1] + a[i][j];
S += row[i][m];
}
vector<vector<char>> dp(n+1, vector<char>(S+1, 0));
vector<vector<int>> par_sum(n+1, vector<int>(S+1, -1));
vector<vector<int>> par_col(n+1, vector<int>(S+1, -1));
dp[0][0] = 1;
for(int i=1;i<=n;i++){
for(int prev=0;prev<=S;prev++){
if(!dp[i-1][prev]) continue;
for(int j=1;j<=m;j++){
int cur = prev + row[i][j];
if(cur > S) continue;
if(!dp[i][cur]){
dp[i][cur] = 1;
par_sum[i][cur] = prev;
par_col[i][cur] = j;
}
}
}
}
int best = 0;
for(int x=0;x<=S;x++){
if(dp[n][x]){
if(abs(2*x - S) < abs(2*best - S))
best = x;
}
}
cout << best * (S - best) << "\n";
vector<int> c(n+1);
int cur = best;
for(int i=n;i>=1;i--){
c[i] = par_col[i][cur];
cur = par_sum[i][cur];
}
string path;
int col = 1;
for(int i=1;i<=n;i++){
while(col < c[i]){
path.push_back('R');
col++;
}
if(i < n) path.push_back('D');
}
while((int)path.size() < n + m - 2)
path.push_back('R');
cout << path << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZyAKaW50IHQ7CnNpZ25lZCBtYWluKCl7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKCWNpbiA+PiB0OwogICAgd2hpbGUodC0tKXsKICAgICAgICBpbnQgbiwgbTsKICAgICAgICBjaW4gPj4gbiA+PiBtOwoKICAgICAgICB2ZWN0b3I8dmVjdG9yPGludD4+IGEobisxLCB2ZWN0b3I8aW50PihtKzEpKTsKICAgICAgICBmb3IoaW50IGk9MTtpPD1uO2krKykKICAgICAgICAgICAgZm9yKGludCBqPTE7ajw9bTtqKyspCiAgICAgICAgICAgICAgICBjaW4gPj4gYVtpXVtqXTsKCiAgICAgICAgdmVjdG9yPHZlY3RvcjxpbnQ+PiByb3cobisxLCB2ZWN0b3I8aW50PihtKzEsMCkpOwogICAgICAgIGludCBTID0gMDsKICAgICAgICBmb3IoaW50IGk9MTtpPD1uO2krKyl7CiAgICAgICAgICAgIGZvcihpbnQgaj0xO2o8PW07aisrKQogICAgICAgICAgICAgICAgcm93W2ldW2pdID0gcm93W2ldW2otMV0gKyBhW2ldW2pdOwogICAgICAgICAgICBTICs9IHJvd1tpXVttXTsKICAgICAgICB9CgogICAgICAgIHZlY3Rvcjx2ZWN0b3I8Y2hhcj4+IGRwKG4rMSwgdmVjdG9yPGNoYXI+KFMrMSwgMCkpOwogICAgICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gcGFyX3N1bShuKzEsIHZlY3RvcjxpbnQ+KFMrMSwgLTEpKTsKICAgICAgICB2ZWN0b3I8dmVjdG9yPGludD4+IHBhcl9jb2wobisxLCB2ZWN0b3I8aW50PihTKzEsIC0xKSk7CgogICAgICAgIGRwWzBdWzBdID0gMTsKCiAgICAgICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgICAgICBmb3IoaW50IHByZXY9MDtwcmV2PD1TO3ByZXYrKyl7CiAgICAgICAgICAgICAgICBpZighZHBbaS0xXVtwcmV2XSkgY29udGludWU7CiAgICAgICAgICAgICAgICBmb3IoaW50IGo9MTtqPD1tO2orKyl7CiAgICAgICAgICAgICAgICAgICAgaW50IGN1ciA9IHByZXYgKyByb3dbaV1bal07CiAgICAgICAgICAgICAgICAgICAgaWYoY3VyID4gUykgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgaWYoIWRwW2ldW2N1cl0pewogICAgICAgICAgICAgICAgICAgICAgICBkcFtpXVtjdXJdID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgcGFyX3N1bVtpXVtjdXJdID0gcHJldjsKICAgICAgICAgICAgICAgICAgICAgICAgcGFyX2NvbFtpXVtjdXJdID0gajsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGludCBiZXN0ID0gMDsKICAgICAgICBmb3IoaW50IHg9MDt4PD1TO3grKyl7CiAgICAgICAgICAgIGlmKGRwW25dW3hdKXsKICAgICAgICAgICAgICAgIGlmKGFicygyKnggLSBTKSA8IGFicygyKmJlc3QgLSBTKSkKICAgICAgICAgICAgICAgICAgICBiZXN0ID0geDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgY291dCA8PCBiZXN0ICogKFMgLSBiZXN0KSA8PCAiXG4iOwoKICAgICAgICB2ZWN0b3I8aW50PiBjKG4rMSk7CiAgICAgICAgaW50IGN1ciA9IGJlc3Q7CiAgICAgICAgZm9yKGludCBpPW47aT49MTtpLS0pewogICAgICAgICAgICBjW2ldID0gcGFyX2NvbFtpXVtjdXJdOwogICAgICAgICAgICBjdXIgPSBwYXJfc3VtW2ldW2N1cl07CiAgICAgICAgfQoKCiAgICAgICAgc3RyaW5nIHBhdGg7CiAgICAgICAgaW50IGNvbCA9IDE7CiAgICAgICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgICAgICB3aGlsZShjb2wgPCBjW2ldKXsKICAgICAgICAgICAgICAgIHBhdGgucHVzaF9iYWNrKCdSJyk7CiAgICAgICAgICAgICAgICBjb2wrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZihpIDwgbikgcGF0aC5wdXNoX2JhY2soJ0QnKTsKICAgICAgICB9CiAgICAgICAgd2hpbGUoKGludClwYXRoLnNpemUoKSA8IG4gKyBtIC0gMikKICAgICAgICAgICAgcGF0aC5wdXNoX2JhY2soJ1InKTsKCiAgICAgICAgY291dCA8PCBwYXRoIDw8ICJcbiI7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=