#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int di[]={-1,0,1,0};
int dj[]={0,1,0,-1};
void citire(int &m,int &n,int &K,int &si,int &sj,int &fi, int &fj,int c[101][101])
{
int i,j;
ifstream f("kdrum.in");
f>>m>>n>>K>>si>>sj>>fi>>fj;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
f>>c[i][j];
}
}
int ok(int i,int j,int m,int n)
{
if(i>0&&i<=m&&j>0&&j<=n) return 1;
return 0;
}
int main()
{
int m,n,i,j,a[101][101],q[10000][2],nq,pq,si,sj,fi,fj,k,ni,nj,K;
int c[101][101];
citire(m,n,K,si,sj,fi,fj,c);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=-1;
a[si][sj]=0;
q[0][0]=si;
q[0][1]=sj;
pq=0;
nq=1;
while(pq<nq)
{
i=q[pq][0];
j=q[pq][1];
for(k=0;k<4;k++)
{
ni=i+di[k];
nj=j+dj[k];
if(ok(ni,nj,m,n)&&c[ni][nj]!=0&&(a[ni][nj]==-1||a[ni][nj]>a[i][j]+1))
{
a[ni][nj]=a[i][j]+1;
q[nq][0]=ni;
q[nq][1]=nj;
nq++;
}
}
pq++;}
ofstream g("okdrum.out");
g<<a[fi][fj]+1;
return 0;
}