#include <cstdio>
#include <algorithm>
using namespace std;
#define lm 60
#define cmax 200*lm*lm
int n, m, k, x1, y1, x2, y2, v[lm][lm], a[200][lm][lm], d[200], s[1210], nd;
int x[cmax], y[cmax], b[cmax];
int v1[4]={0,0,1,-1};
int v2[4]={1,-1,0,0};
int cmmdc(int a, int b)
{
int k=a%b;
while (k)
{
a=b;
b=k;
k=a%b;
}
return b;
}
int solve()
{
int i, p, h, l, c, f;
h=1;
f=s[cmmdc(v[x1][y1],k)];
x[1]=x1;
y[1]=y1;
b[1]=f;
a[f][x1][y1]=1;
for (p=1; p<=h; p++)
{
for (i=0; i<4; i++)
{
l=x[p]+v1[i];
c=y[p]+v2[i];
if (l<=n && c<=m && l && c)
{
if (v[l][c])
{
f=d[b[p]]*v[l][c];
f=s[cmmdc(f,k)];
if ((!a[f][l][c])|(a[b[p]][x[p]][y[p]]+1<a[f][l][c]))
{
h++;
x[h]=l;
y[h]=c;
b[h]=f;
a[f][l][c]=a[b[p]][x[p]][y[p]]+1;
}
}
}
}
}
return a[nd][x2][y2];
}
int main()
{
freopen("kdrum.in","r",stdin);
freopen("kdrum.out","w",stdout);
scanf("%d %d %d",&n,&m,&k);
scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
int i, j;
for (i=1; i<=n; i++)
for (j=1; j<=m; j++) scanf("%d",&v[i][j]);
for (i=1; i<=k; i++)
if (!(k%i))
{
d[1+nd++]=i;
s[i]=nd;
}
printf("%d",solve());
}