#include<bits/stdc++.h>
using namespace std;
const int N=2e3+10;
const int M=1e9;
int t;
int n,m;
char c;
int f[N][N];
int vis[N][N],st[N][N];
int v[N][N];
int dx[5]={0,-1,1,0,0};
int dy[5]={0,0,0,-1,1};
int dz[5]={0,2,1,4,3};
int ans[N];
char ch[5]={0,'U','D','L','R'};
void bfs(int x,int y){
for(int i=1;i<=4;i++){
if(f[x+dx[i]][y+dy[i]]==1-f[x][y]&&x+dx[i]>=1&&x+dx[i]<=n&&y+dy[i]>=1&&y+dy[i]<=m&&v[x+dx[i]][y+dy[i]]<=1){
if(st[x+dx[i]][y+dy[i]]>st[x][y]+1){
st[x+dx[i]][y+dy[i]]=st[x][y]+1;
vis[x+dx[i]][y+dy[i]]=i;
bfs(x+dx[i],y+dy[i]);
v[x+dx[i]][y+dy[i]]+=1;
}
}
}
}
void print(int x,int y,int s){
if(s<=0){
return;
}
ans[s]=vis[x][y];
vis[x][y]=dz[vis[x][y]];
print(x+dx[vis[x][y]],y+dy[vis[x][y]],s-1);
}
int main(){
cin>>t;
while(t--){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
st[i][j]=M;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
v[i][j]=0;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>c;
f[i][j]=c-'0';
}
}
st[1][1]=0;
bfs(1,1);
if(st[n][m]>=M){
st[n][m]=-1;
}
cout<<st[n][m]<<endl;
print(n,m,st[n][m]);
for(int i=1;i<=st[n][m];i++){
cout<<ch[ans[i]];
}
if(st[n][m]!=-1){
cout<<endl;
}
}
return 0;
}