// lee - matrice n*m
#include <iostream>
#include <fstream.h>
using namespace std;
ifstream f("kdrum.in");
ofstream g("kdrum.out");
int n, m, i, c, j, l, lb[10][10], l1, c1, ct=0, k, v=1, kk;
void drum(int k, int l, int c){
if(l+1<=n)
if(lb[l+1][c]>k+1){
lb[l+1][c]=k+1;
drum(k+1, l+1, c);
}
if(l-1>0)
if(lb[l-1][c]>k+1){
lb[l-1][c]=k+1;
drum(k+1, l-1, c);
}
if(c+1<=m)
if(lb[l][c+1]>k+1){
lb[l][c+1]=k+1;
drum(k+1, l, c+1);
}
if(c-1>0)
if(lb[l][c-1]>k+1){
lb[l][c-1]=k+1;
drum(k+1, l, c-1);
}
}
void refac(int k, int i, int j){
if(k<n*m && k>0)
if(i<n && lb[i+1][j]==k-1){
v*=lb[i+1][j];
refac(k-1, i+1, j);
}else if(i>1 && lb[i-1][j]==k-1){
v*=lb[i-1][j];
refac(k-1, i-1, j);
}else if(j>1 && lb[i][j-1]==k-1){
v*=lb[i][j-1];
refac(k-1, i, j-1);
}else if(j<n && lb[i][j+1]==k-1){
v*=lb[i][j+1];
refac(k-1, i, j+1);
}
ct++;
}
void refac1(int k, int i, int j){
if(k<n*m && k>0)
if(j>1 && lb[i][j-1]==k-1){
v*=lb[i][j-1];
refac1(k-1, i, j-1);
}else if(j<n && lb[i][j+1]==k-1){
v*=lb[i][j+1];
refac1(k-1, i, j+1);
}else if(i<n && lb[i+1][j]==k-1){
v*=lb[i+1][j];
refac1(k-1, i+1, j);
}else if(i>1 && lb[i-1][j]==k-1){
v*=lb[i-1][j];
refac1(k-1, i-1, j);
}
ct++;
}
int main(){
f >> n;
f >> m;
f >> kk;
f >> l;
f >> c;
f >> l1;
f >> c1;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
f >> lb[i][j];
drum(0, l, c);
refac(lb[l1][c1], l1, c1);
if(v%kk==0)
g << ct << endl;
else{
ct=0;
refac1(lb[l1][c1], l1, c1);
g << ct << endl;
}
f.close();
g.close();
return 0;
}