#include<bits/stdc++.h>
#define ll long long
using namespace std;
void ts(){cout<<"AKIOI"<<endl;}
int n,m;
int k;
const int N=1005;
char c[N][N];
int dp1[3][3][N][N];
pair<int,int> pa[N][N];
vector<pair<int,int> > mo;
int aa,bb,cc,dd;
bool check=0;
int dfs1(int x,int y,int tx,int ty){
if(dp1[tx+1][ty+1][x+tx][y+ty]>0){
dp1[tx+1][ty+1][x][y]=dp1[tx+1][ty+1][x+tx][y+ty]+1;
return dp1[tx+1][ty+1][x][y];
}
if(c[x+tx][y+ty]=='.'){
dp1[tx+1][ty+1][x][y]=dfs1(x+tx,y+ty,tx,ty)+1;
return dp1[tx+1][ty+1][x][y];
}
if(x+tx>n || x+tx<1 || y+ty>m || y+ty<1 || c[x+tx][y+ty]=='#'){
dp1[tx+1][ty+1][x][y]=1;
return dp1[tx+1][ty+1][x][y];
}
if(c[x+tx][y+ty]=='/'){
int jx,jy;
int sx=x,sy=y;
int stx=tx,sty=ty;
x=x+tx;
y=y+ty;
if(tx==-1 &&ty==0){
jx=0;
jy=1;
}
if(tx==1 && ty==0){
jx=0;
jy=-1;
}
if(tx==0 && ty==1){
jx=-1;
jy=0;
}
if(tx==0 && ty==-1){
jx=1;
jy=0;
}
tx=jx;
ty=jy;
int tmd=dfs1(x,y,tx,ty);
if(c[sx][sy]=='.')dp1[stx+1][sty+1][sx][sy]=tmd+1;
return tmd+1;
}
if(c[x+tx][y+ty]=='\\'){
int jx,jy;
int sx=x,sy=y;
int stx=tx,sty=ty;
x=x+tx;
y=y+ty;
if(tx==-1 &&ty==0){
jx=0;
jy=-1;
}
if(tx==1 && ty==0){
jx=0;
jy=1;
}
if(tx==0 && ty==1){
jx=1;
jy=0;
}
if(tx==0 && ty==-1){
jx=-1;
jy=0;
}
tx=jx;
ty=jy;
int tmd=dfs1(x,y,tx,ty);
if(c[sx][sy]=='.')dp1[stx+1][sty+1][sx][sy]=tmd+1;
return tmd+1;
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n>>m;
for(register int i=1;i<=n;i++){
for(register int j=1;j<=m;j++){
cin>>c[i][j];
if(c[i][j]=='X')k++;
}
}
for(register int i=1;i<=k/2;i++){
cin>>aa>>bb>>cc>>dd;
pa[aa][bb]=make_pair(cc,dd);
pa[cc][dd]=make_pair(aa,bb);
}
for(register int i=1;i<=n;i++){
for(register int j=1;j<=m;j++){
if(c[i][j]!='.'){
dp1[1][2][i][j]=-1;
dp1[2][1][i][j]=-1;
dp1[0][1][i][j]=-1;
dp1[1][0][i][j]=-1;
continue;
}
if(dp1[1][2][i][j]==0)dfs1(i,j,0,1);
}
}
for(register int i=1;i<=n;i++){
for(register int j=1;j<=m;j++){
if(c[i][j]!='.'){
dp1[1][2][i][j]=-1;
dp1[2][1][i][j]=-1;
dp1[0][1][i][j]=-1;
dp1[1][0][i][j]=-1;
continue;
}
if(dp1[2][1][i][j]==0)dfs1(i,j,1,0);
}
}
for(register int i=1;i<=n;i++){
for(register int j=1;j<=m;j++){
if(c[i][j]!='.'){
dp1[1][2][i][j]=-1;
dp1[2][1][i][j]=-1;
dp1[0][1][i][j]=-1;
dp1[1][0][i][j]=-1;
continue;
}
if(dp1[1][0][i][j]==0)dfs1(i,j,0,-1);
}
}
for(register int i=1;i<=n;i++){
for(register int j=1;j<=m;j++){
if(c[i][j]!='.'){
dp1[1][2][i][j]=-1;
dp1[2][1][i][j]=-1;
dp1[0][1][i][j]=-1;
dp1[1][0][i][j]=-1;
continue;
}
if(dp1[0][1][i][j]==0)dfs1(i,j,-1,0);
}
}
for(register int i=1;i<=n;i++){
for(register int j=1;j<=m;j++){
cout<<dp1[0][1][i][j]<<' ';
}
cout<<endl;
}
for(register int i=1;i<=n;i++){
for(register int j=1;j<=m;j++){
cout<<dp1[2][1][i][j]<<' ';
}
cout<<endl;
}
for(register int i=1;i<=n;i++){
for(register int j=1;j<=m;j++){
cout<<dp1[1][0][i][j]<<' ';
}
cout<<endl;
}
for(register int i=1;i<=n;i++){
for(register int j=1;j<=m;j++){
cout<<dp1[1][2][i][j]<<' ';
}
cout<<endl;
}
return 0;
}
/*
3 3
#..
../
..#
*