#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using ull=unsigned long long;
constexpr int inf=1e9+7;
constexpr int mod=998244353;
constexpr int N=1003;
int n;
int a[N][N][2];
int dp[N][N][2];
void get(int x,int y,int k,int biao)
{
if(x==1&&y==1);
else if(x==1&&y!=1)get(x,y-1,k,0);
else if(x!=1&&y==1)get(x-1,y,k,1);
else
{
if(dp[x][y][k]==dp[x-1][y][k]+a[x][y][k]) get(x-1,y,k,1);
else get(x,y-1,k,0);
}
if(biao==inf)return ;
cout<<(biao?'D':'R');
}
ll read(){ll x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x*f;}
void wt(long long x,char ch=0){if(x<0) putchar('-'),wt(-x);else{if(x>=10) wt(x/10);putchar(x%10+'0');}if(ch) putchar(ch);return;}
signed main(){
cin.tie(0);
cout.tie(0);
n=read();
int biao=0;
int x,y;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
int w=read();
if(!w)
{
biao=1;
a[i][j][0]++;
a[i][j][1]++;
x=i,y=j;
continue;
}
while(w%2==0) a[i][j][0]++,w/=2;
while(w%5==0) a[i][j][1]++,w/=5;
}
}
memset(dp,0x3f,sizeof(dp));
dp[1][1][1]=0;
dp[1][1][0]=0;
for(int k=0;k<=1;++k)
{
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
if(i!=1) dp[i][j][k]=min(dp[i][j][k],dp[i-1][j][k]);
if(j!=1) dp[i][j][k]=min(dp[i][j][k],dp[i][j-1][k]);
dp[i][j][k]+=a[i][j][k];
}
}
}
int ans=min(dp[n][n][0],dp[n][n][1]);
if(ans>1&&biao)
{
wt(1,'\n');
for(int i=1;i<x;++i) cout<<'D';
for(int i=1;i<y;++i) cout<<'R';
for(int i=x;i<=n;++i) cout<<'D';
for(int i=y;i<=n;++i) cout<<'R';
return 0;
}
wt(ans,'\n');
if(dp[n][n][0]<dp[n][n][1]) get(n,n,0,inf);
else get(n,n,1,inf);
fclose(stdin);
fclose(stdout);
return 0;
}