////
//#include<fstream.h>
//#include<string.h>
//#include<iostream>
//ifstream f("rj.in");
//ofstream g("rj.out");
//struct{int l,c;} x,y,c[30000];
//int m,n,i,j,a[101][101],b[101][101],xr,yr,xj,yj,start,finish,min,imin,jmin;
//int dl[]={-1,-1,-1,0,0,1,1,1};
//int dc[]={-1,0,1,-1,1,-1,0,1};
//char s[102];
//
//
//void read()
//{
// f>>m>>n;
// f.get();
// for(i=1;i<=m;i++)
// {
// f.getline(s,255);
// for(j=0;j<n;j++)
// {
//
// if(s[j]==32)
// {
// a[i][j+1]=0;
// b[i][j+1]=0;
// }
//
// if(s[j]=='X')
// {
// a[i][j+1]=-1;
// b[i][j+1]=-1;
// }
//
// if(s[j]=='R')
// {
// a[i][j+1]=1;
// //b[i][j+1]=1;
// xr=i;
// yr=j+1;
// }
//
// if(s[j]=='J')
// {
// b[i][j+1]=1;
// //a[i][j+1]=1;
// xj=i;
// yj=j+1;
// }
// }
// }
//
//}
//
//
//void find(int t[101][101],int x1,int y1,int x2,int y2)
//{
// start=finish=0;
// x.l=x1;
// x.c=y1;
// c[start]=x;
//
// while(start<=finish) //&& t[x2][y2]==0)
// {
// x=c[start];
// start++;
// for(i=0;i<8;i++)
// {
// y.l=x.l+dl[i];
// y.c=x.c+dc[i];
//
// if(y.l>=1 &&y.l<=m && y.c>=1 &&y.c<=n)
// if(t[y.l][y.c]==0)
// {
// finish++;
// t[y.l][y.c]=t[x.l][x.c]+1;
// c[finish]=y;
// }
// }
// }
//
//for(i=0;i<=300;i++)
//{
// if(c[i].l==0&&c[i+1].l==0)
// break;
// else
// {
//c[i].l=0;
//c[i].c=0;
// }
//}
//
//}
//
//
//
//void solution()
//{
// min=32000;
// for(i=1;i<=m;i++)
// for(j=1;j<=n;j++)
// if(a[i][j]==b[i][j])
// {
// if(a[i][j]<min&&a[i][j]>0)
// {
// min=a[i][j];
// imin=i;
// jmin=j;
// }
//
// if(a[i][j]==min)
// {
// if(i<imin)
// {
// imin=i;
// jmin=j;
// }
// }
//
// if(a[i][j]==min&&i==imin)
// {
// if(j<jmin)
// {
// imin=i;
// jmin=j;
// }
// }
//
//
//
// }
//
//g<<min<<" "<<imin<<" "<<jmin;
//}
//
//
//
//
//int main()
//{
// read();
//
//
// find(a,xr,yr,xj,yj);
// find(b,xj,yj,xr,yr);
// solution();
//
//
//
// f.close();
// g.close();
// return 0;
//}
//