#include <stdio.h>
#include <iostream.h>
//int comp(const void* a,const void* b){
// return (*(long*)a-*(long*)b);
//}
long n,m,i,j,x,y,xx,yy,k,ok;
long xr,yr,p,q,mr[101][101],xj,yj;
long xn[10001],yn[10001];
long dx[]={0,-1,-1,-1,0,1,1,1,0};
long dy[]={0,-1,0,1,1,1,0,-1,-1};
int main(){
FILE *f1,*f2;
f1=fopen("rj.in","r");
f2=fopen("rj.out","w");
char a[101][101];
fscanf(f1,"%d %d",&n,&m);
//fprintf(f2,"%d %d",n,m);
fgets(a[i],101,f1);
for (i=1;i<=n;i++){
fgets(a[i],101,f1);
for (j=0;j<m;j++){if (a[i][j]=='R'){xr=i;yr=j+1;}
if (a[i][j]=='J'){xj=i;yj=j+1;}
}
}
//qsort(x,n,sizeof(long),comp);
p=1;q=1;ok=0;
mr[xr][yr]=1;
xn[1]=xr;
yn[1]=yr;
while (p<=q&&ok==0){
for (k=1;k<=8;k++){
xx=xn[p]+dx[k];
yy=yn[p]+dy[k];
if (xx>=1&&xx<=n&&yy>=1&&yy<=m){
if(!mr[xx][yy]) if (a[xx][yy-1]!='X'){
mr[xx][yy]=mr[xn[p]][yn[p]]+1;
q++;xn[q]=xx;yn[q]=yy;
}
if (a[xx][yy-1]=='J')ok=1;
}
}
p++;
}
for (i=1;i<=n;i++){
for (j=1;j<=m;j++){
fprintf(f2,"%d",mr[i][j]);
}
fprintf(f2,"\n");
}
return 0;
}