#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t;
int n,m;
const int N = 2e3+7;
bool vis[N];
int f[N];
int sx[]={0,-1,0,1},sy[]={-1,0,1,0};
string road[N];
int sum,mn=N*N+7;
int idx=1,q;
void dfs(int x,int y)
{
if(x<=n&&y<=m)
{
bool flag=1;
for(int i=0;i<4;i++)
{
if(x==n&&y==m)
{
if(mn>sum)
{
mn=sum;
q=idx;
idx++;
}
return;
}
int dx=x+sx[i],dy=y+sy[i];
if(f[dx][dy]!=f[x][y]&&vis[dx][dy]&&dx<=n&&dy<=m)
{
if (i==0)
{
road[idx]+="U";
}
else if (i==1)
{
road[idx]+="D";
}
else if (i==2)
{
road[idx]+="L";
}
else
{
road[idx]+="R";
}
flag=0;
vis[dx][dy]=1;
sum++;
dfs(dx,dy);
sum--;
vis[dx][dy]=0;
}
}
if(flag)
{
return;
}
}
}
int main(void)
{
cin>>t;
while(t--)
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
char ch;
cin>>ch;
f[i][j]=ch-'0';
}
}
cout<<mn<<endl;
if(mn!=N*N+7)
{
for(int i=1;i<=road[q].length()+1;i++)
{
cout<<road[q][i];
}
cout<<endl;
}
}
return 0;
}