#include<bits/stdc++.h>
using namespace std;
const int dx[4]={0,1,0,-1};
const int dy[4]={1,0,-1,0};
int n,m,k,x1,yyy,x2,y2;
string s[1010101];
int main()
{
	cin>>n>>m>>k>>x1>>yyy>>x2>>y2;
	x1--;
	yyy--;
	x2--;
	y2--;
	for(int i=0;i<n;i++)
	{
		cin>>s[i];
	}
	vector<vector<int> >dt(n,vector<int>(m,1e9+1e7));
	queue<pair<int,int> >q;
	dt[x1][yyy]=0;
	q.push(make_pair(x1,yyy));
	while(!q.empty())
	{
		int x=q.front().first,y=q.front().second;
		q.pop();
		int nw=dt[x][y]+1;
		for(int d=0;d<4;d++)
		{
			int xx=x,yy=y;
			for(int i=0;i<k;i++)
			{
				xx+=dx[d];
				yy+=dy[d];
				if(xx<0 || yy<0 || xx>=n || yy>=m || s[xx][yy]=='@' || dt[xx][yy]<nw)
				{
					break;
				}
				if(dt[xx][yy]==nw)
				{
					continue;
				}
				dt[xx][yy]=nw;
				q.push(make_pair(xx,yy));
			}
		}
	}
	if(dt[x2][y2]<1e9+1e7)
	{
		cout<<dt[x2][y2]<<endl;
	}
	else
	{
		cout<<-1<<endl;
	}
	return 0;
}