#include<bits/stdc++.h>
using namespace std;
const int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
int n,m,l=-1,r=-1,qx[4000000],qy[4000000],sx,sy,x,y,nx,ny,dis[2001][2001];
long long aa[2001][2001],qs[4000000],s;
bool vis[2001][2001];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)scanf("%lld",&aa[i][j]);
scanf("%d%d",&sx,&sy),qx[++r]=sx,qy[r]=sy,qs[r]=aa[sx][sy],dis[sx][sy]=0,vis[sx][sy]=1;
while(l<r){
x=qx[++l],y=qy[l],s=qs[l];
if(s==1)return 0&printf("%d",dis[x][y]);
for(int i=0;i<4;++i){
nx=x+dx[i],ny=y+dy[i];
if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&!vis[nx][ny]){
qx[++r]=nx,qy[r]=ny,qs[r]=__gcd(s,aa[nx][ny]),dis[nx][ny]=dis[x][y]+1,vis[nx][ny]=1;
}
}
}
return 0&printf("-1");
}