#include<bits/stdc++.h>
using namespace std;
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
template < typename T>
using ordered_set = tree< T, null_type, less< T> , rb_tree_tag, tree_order_statistics_node_update> ;
typedef long long ll;
typedef long double ld;
typedef pair< ll,ll> pl;
typedef pair< int ,int > pii;
#define gll(x) scanf("%lld",&x)
#define gll2(x,y) scanf("%lld%lld",&x,&y)
#define gll3(x,y,z) scanf("%lld%lld%lld",&x,&y,&y)
#define gllarr(arr,n) f(i,n) gll(arr[i]);
#define sz(x) ((int)x.size())
#define s(x) sort(x.begin(),x.end())
#define all(v) v.begin(),v.end()
#define rs(v) { s(v) ; r(v) ; }
#define r(v) {reverse(all(v));}
#define pb push_back
#define mp make_pair
#define F first
#define S second
#define f(i,n) for(int i=0;i<n;i++)
#define fr(i,n) for(int i=n-1;i>=0;i--)
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define repr(i,a,b) for(int i=a;i>=b;i--)
const ll mod = 1000000007 ;
const ll inf = ( ll) 5e16 ;
const ld eps = 1e-12 ;
const ll N = 10000005 ;
const ll LOGN = 19 ;
const ld PI = 3.14159265358979323846 ;
ll mul( ll a, ll b, ll m = mod) { return ( ll) ( a * b) % m; }
ll add( ll a, ll b, ll m = mod) { a + = b; if ( a >= m) a - = m; if ( a < 0 ) a + = m; return a; }
ll power( ll a, ll b, ll m = mod) { if ( b == 0 ) return 1 ; if ( b == 1 ) return ( a % m) ; ll x = power( a, b / 2 , m) ; x = mul( x, x, m) ; if ( b % 2 ) x = mul( x, a, m) ; return x; }
int n,m,k;
bool check( int i,int j)
{
return ( i>= 0 && i< n && j>= 0 && j< m ) ;
}
/*void bfs(int x1,int y1,int x2,int y2)
{
queue<pii> Q;
Q.push({x1,y1});
sec[x1][y1]=0;
while(!Q.empty())
{
pii p=Q.front();
Q.pop();
int x=p.F;
int y=p.S;
rep(i,1,k)
{
if(!check(x,y+i))
break;
if(sec[x][y]>=sec[x][y+i])
break;
else
{
//cout<<"NOOO";
sec[x][y+i]=sec[x][y]+1;
Q.push({x,y+i});
}
}
rep(i,1,k)
{
if(!check(x,y-i))
break;
if(sec[x][y]>=sec[x][y-i])
break;
else
{
sec[x][y-i]=sec[x][y]+1;
Q.push({x,y-i});
}
}
rep(i,1,k)
{
if(!check(x+i,y))
break;
if(sec[x][y]>=sec[x+i][y])
break;
else
{
sec[x+i][y]=sec[x][y]+1;
Q.push({x+i,y});
}
}
rep(i,1,k)
{
if(!check(x-i,y))
break;
if(sec[x][y]>=sec[x-i][y])
break;
else
{
sec[x-i][y]=sec[x][y]+1;
Q.push({x-i,y});
}
}
}
}*/
int main( )
{
ios_base:: sync_with_stdio ( false ) ;
cin .tie ( NULL ) ;
cin >> n>> m>> k;
//int n,m,k;
bool a[ n] [ m] ;
int sec[ n] [ m] ;
char c;
string s;
//memset(a,false,sizeof(a));
f( i,n)
{
f( j,m)
sec[ i] [ j] = ( int ) 1e5 ;
}
f( i,n)
{
//cin>>s;
f( j,m)
{
cin >> c;
if ( c== '.' )
a[ i] [ j] = true ;
else
a[ i] [ j] = false ;
}
}
int x1,y1,x2,y2;
cin >> x1>> y1>> x2>> y2;
x1-- ,y1-- ,x2-- ,y2-- ;
queue< pii> Q;
Q.push ( { x1,y1} ) ;
sec[ x1] [ y1] = 0 ;
pii p; int x,y;
while ( ! Q.empty ( ) )
{
p= Q.front ( ) ;
Q.pop ( ) ;
x= p.F ;
y= p.S ;
rep( i,1 ,k)
{
if ( ! check( x,y+ i) || ! a[ x] [ y+ i] )
break ;
if ( sec[ x] [ y] >= sec[ x] [ y+ i] )
break ;
if ( sec[ x] [ y+ i] ! = ( int ) 1e5 && sec[ x] [ y+ i] > sec[ x] [ y] )
continue ;
else
{
//cout<<"NOOO";
sec[ x] [ y+ i] = sec[ x] [ y] + 1 ;
Q.push ( { x,y+ i} ) ;
}
}
rep( i,1 ,k)
{
if ( ! check( x,y- i) || ! a[ x] [ y- i] )
break ;
if ( sec[ x] [ y] >= sec[ x] [ y- i] )
break ;
if ( sec[ x] [ y- i] ! = ( int ) 1e5 && sec[ x] [ y- i] > sec[ x] [ y] )
continue ;
else
{
sec[ x] [ y- i] = sec[ x] [ y] + 1 ;
Q.push ( { x,y- i} ) ;
}
}
rep( i,1 ,k)
{
if ( ! check( x+ i,y) || ! a[ x+ i] [ y] )
break ;
if ( sec[ x] [ y] >= sec[ x+ i] [ y] )
break ;
if ( sec[ x+ i] [ y] ! = ( int ) 1e5 && sec[ x+ i] [ y] > sec[ x] [ y] )
continue ;
else
{
sec[ x+ i] [ y] = sec[ x] [ y] + 1 ;
Q.push ( { x+ i,y} ) ;
}
}
rep( i,1 ,k)
{
if ( ! check( x- i,y) || ! a[ x- i] [ y] )
break ;
if ( sec[ x] [ y] >= sec[ x- i] [ y] )
break ;
if ( sec[ x- i] [ y] ! = ( int ) 1e5 && sec[ x- i] [ y] > sec[ x] [ y] )
continue ;
else
{
sec[ x- i] [ y] = sec[ x] [ y] + 1 ;
Q.push ( { x- i,y} ) ;
}
}
}
if ( sec[ x2] [ y2] == ( int ) 1e5 )
cout << "-1\n " ;
else cout << sec[ x2] [ y2] ;
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2luY2x1ZGU8ZXh0L3BiX2RzL2Fzc29jX2NvbnRhaW5lci5ocHA+CiNpbmNsdWRlPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KdXNpbmcgb3JkZXJlZF9zZXQgPSB0cmVlPFQsIG51bGxfdHlwZSwgbGVzczxUPiwgcmJfdHJlZV90YWcsIHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT47CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHBhaXI8bGwsbGw+IHBsOwp0eXBlZGVmIHBhaXI8aW50LGludD4gcGlpOwogCiNkZWZpbmUgZ2xsKHgpIHNjYW5mKCIlbGxkIiwmeCkKI2RlZmluZSBnbGwyKHgseSkgc2NhbmYoIiVsbGQlbGxkIiwmeCwmeSkKI2RlZmluZSBnbGwzKHgseSx6KSBzY2FuZigiJWxsZCVsbGQlbGxkIiwmeCwmeSwmeSkKI2RlZmluZSBnbGxhcnIoYXJyLG4pIGYoaSxuKSBnbGwoYXJyW2ldKTsKI2RlZmluZSBzeih4KSAoKGludCl4LnNpemUoKSkKI2RlZmluZSBzKHgpIHNvcnQoeC5iZWdpbigpLHguZW5kKCkpCiNkZWZpbmUgYWxsKHYpIHYuYmVnaW4oKSx2LmVuZCgpCiNkZWZpbmUgcnModikgeyBzKHYpIDsgcih2KSA7IH0KI2RlZmluZSByKHYpIHtyZXZlcnNlKGFsbCh2KSk7fQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIEYgZmlyc3QKI2RlZmluZSBTIHNlY29uZAojZGVmaW5lIGYoaSxuKSBmb3IoaW50IGk9MDtpPG47aSsrKQojZGVmaW5lIGZyKGksbikgZm9yKGludCBpPW4tMTtpPj0wO2ktLSkKI2RlZmluZSByZXAoaSxhLGIpIGZvcihpbnQgaT1hO2k8PWI7aSsrKQojZGVmaW5lIHJlcHIoaSxhLGIpIGZvcihpbnQgaT1hO2k+PWI7aS0tKQogCmNvbnN0IGxsIG1vZCA9IDEwMDAwMDAwMDc7CmNvbnN0IGxsIGluZiA9IChsbCk1ZTE2Owpjb25zdCBsZCBlcHMgPSAxZS0xMjsKY29uc3QgbGwgTiA9IDEwMDAwMDA1Owpjb25zdCBsbCBMT0dOID0gMTk7CmNvbnN0IGxkIFBJID0gMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjsKbGwgbXVsKGxsIGEsIGxsIGIsIGxsIG0gPSBtb2QpIHsgcmV0dXJuIChsbCkoYSAqIGIpICUgbTt9CmxsIGFkZChsbCBhLCBsbCBiLCBsbCBtID0gbW9kKSB7IGEgKz0gYjsgaWYoYSA+PSBtKSBhIC09IG07IGlmKGEgPCAwKSBhICs9IG07IHJldHVybiBhO30KbGwgcG93ZXIobGwgYSwgbGwgYiwgbGwgbSA9IG1vZCkgeyBpZihiID09IDApIHJldHVybiAxOyBpZihiID09IDEpIHJldHVybiAoYSAlIG0pOyBsbCB4ID0gcG93ZXIoYSwgYiAvIDIsIG0pOyB4ID0gbXVsKHgsIHgsIG0pOyBpZihiICUgMikgeCA9IG11bCh4LCBhLCBtKTsgcmV0dXJuIHg7fQoKaW50IG4sbSxrOwpib29sIGNoZWNrKGludCBpLGludCBqKQp7CiAgICByZXR1cm4oaT49MCAmJiBpPG4gJiYgaj49MCAmJiBqPG0gKTsKfQoKLyp2b2lkIGJmcyhpbnQgeDEsaW50IHkxLGludCB4MixpbnQgeTIpCnsKICAgIHF1ZXVlPHBpaT4gUTsKICAgIFEucHVzaCh7eDEseTF9KTsKICAgIHNlY1t4MV1beTFdPTA7CiAgICB3aGlsZSghUS5lbXB0eSgpKQogICAgewogICAgICAgIHBpaSBwPVEuZnJvbnQoKTsKICAgICAgICBRLnBvcCgpOwogICAgICAgIGludCB4PXAuRjsKICAgICAgICBpbnQgeT1wLlM7CiAgICAgICAgcmVwKGksMSxrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoIWNoZWNrKHgseStpKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgaWYoc2VjW3hdW3ldPj1zZWNbeF1beStpXSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZWxzZSAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLy9jb3V0PDwiTk9PTyI7CiAgICAgICAgICAgICAgICBzZWNbeF1beStpXT1zZWNbeF1beV0rMTsKICAgICAgICAgICAgICAgIFEucHVzaCh7eCx5K2l9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXAoaSwxLGspCiAgICAgICAgewogICAgICAgICAgICBpZighY2hlY2soeCx5LWkpKQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGlmKHNlY1t4XVt5XT49c2VjW3hdW3ktaV0pCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGVsc2UgCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNlY1t4XVt5LWldPXNlY1t4XVt5XSsxOwogICAgICAgICAgICAgICAgUS5wdXNoKHt4LHktaX0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJlcChpLDEsaykKICAgICAgICB7CiAgICAgICAgICAgIGlmKCFjaGVjayh4K2kseSkpCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgaWYoc2VjW3hdW3ldPj1zZWNbeCtpXVt5XSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZWxzZSAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc2VjW3graV1beV09c2VjW3hdW3ldKzE7CiAgICAgICAgICAgICAgICBRLnB1c2goe3graSx5fSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmVwKGksMSxrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoIWNoZWNrKHgtaSx5KSkKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBpZihzZWNbeF1beV0+PXNlY1t4LWldW3ldKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBlbHNlIAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzZWNbeC1pXVt5XT1zZWNbeF1beV0rMTsKICAgICAgICAgICAgICAgIFEucHVzaCh7eC1pLHl9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfSovCgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNpbj4+bj4+bT4+azsKICAgIC8vaW50IG4sbSxrOwogICAgYm9vbCBhW25dW21dOwogICAgaW50IHNlY1tuXVttXTsKICAgIGNoYXIgYzsKICAgIHN0cmluZyBzOwogICAgLy9tZW1zZXQoYSxmYWxzZSxzaXplb2YoYSkpOwogICAgZihpLG4pCiAgICB7CiAgICAgICAgZihqLG0pCiAgICAgICAgICAgIHNlY1tpXVtqXT0oaW50KTFlNTsKICAgIH0KICAgIGYoaSxuKQogICAgewogICAgICAgIC8vY2luPj5zOwogICAgICAgIGYoaixtKQogICAgICAgIHsKICAgICAgICAgICAKICAgICAgICAgICAgY2luPj5jOwogICAgICAgICAgICBpZihjPT0nLicpCiAgICAgICAgICAgICAgICBhW2ldW2pdPXRydWU7CiAgICAgICAgICAgIGVsc2UgCiAgICAgICAgICAgICAgICBhW2ldW2pdPWZhbHNlOwogICAgICAgIH0KICAgIH0KICAgIGludCB4MSx5MSx4Mix5MjsKICAgIGNpbj4+eDE+PnkxPj54Mj4+eTI7CiAgICB4MS0tLHkxLS0seDItLSx5Mi0tOwogICAgcXVldWU8cGlpPiBROwogICAgUS5wdXNoKHt4MSx5MX0pOwogICAgc2VjW3gxXVt5MV09MDsKICAgIHBpaSBwO2ludCB4LHk7CiAgICB3aGlsZSghUS5lbXB0eSgpKQogICAgewogICAgICAgICBwPVEuZnJvbnQoKTsKICAgICAgICBRLnBvcCgpOwogICAgICAgICB4PXAuRjsKICAgICAgICAgeT1wLlM7CiAgICAgICAgcmVwKGksMSxrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoIWNoZWNrKHgseStpKSB8fCAhYVt4XVt5K2ldKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBpZihzZWNbeF1beV0+PXNlY1t4XVt5K2ldKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBpZihzZWNbeF1beStpXSE9KGludCkxZTUgJiYgc2VjW3hdW3kraV0+c2VjW3hdW3ldKQogICAgICAgICAgICAJY29udGludWU7CiAgICAgICAgICAgIGVsc2UgCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8vY291dDw8Ik5PT08iOwogICAgICAgICAgICAgICAgc2VjW3hdW3kraV09c2VjW3hdW3ldKzE7CiAgICAgICAgICAgICAgICBRLnB1c2goe3gseStpfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmVwKGksMSxrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoIWNoZWNrKHgseS1pKSB8fCAhYVt4XVt5LWldKQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGlmKHNlY1t4XVt5XT49c2VjW3hdW3ktaV0pCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGlmKHNlY1t4XVt5LWldIT0oaW50KTFlNSAmJiBzZWNbeF1beS1pXT5zZWNbeF1beV0pCiAgICAgICAgICAgIAljb250aW51ZTsKICAgICAgICAgICAgZWxzZSAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc2VjW3hdW3ktaV09c2VjW3hdW3ldKzE7CiAgICAgICAgICAgICAgICBRLnB1c2goe3gseS1pfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmVwKGksMSxrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoIWNoZWNrKHgraSx5KSB8fCAhYVt4K2ldW3ldKQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGlmKHNlY1t4XVt5XT49c2VjW3graV1beV0pCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgCWlmKHNlY1t4K2ldW3ldIT0oaW50KTFlNSAmJiBzZWNbeCtpXVt5XT5zZWNbeF1beV0pCiAgICAgICAgICAgIAljb250aW51ZTsKICAgICAgICAgICAgZWxzZSAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc2VjW3graV1beV09c2VjW3hdW3ldKzE7CiAgICAgICAgICAgICAgICBRLnB1c2goe3graSx5fSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmVwKGksMSxrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoIWNoZWNrKHgtaSx5KSB8fCAhYVt4LWldW3ldKQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGlmKHNlY1t4XVt5XT49c2VjW3gtaV1beV0pCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGlmKHNlY1t4LWldW3ldIT0oaW50KTFlNSAmJiBzZWNbeC1pXVt5XT5zZWNbeF1beV0pCiAgICAgICAgICAgIAljb250aW51ZTsKICAgICAgICAgICAgZWxzZSAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc2VjW3gtaV1beV09c2VjW3hdW3ldKzE7CiAgICAgICAgICAgICAgICBRLnB1c2goe3gtaSx5fSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgaWYoc2VjW3gyXVt5Ml09PShpbnQpMWU1KQogICAgICAgIGNvdXQ8PCItMVxuIjsKICAgIGVsc2UgY291dDw8c2VjW3gyXVt5Ml07CiAgICByZXR1cm4gMDsKfQ==