//hanyiyang c++ code
#include <bits/stdc++.h>
#define MAXN 10
using namespace std;
int step_x[5]={0,1,-1,0,0};
int step_y[5]={0,0,0,1,-1};
struct node
{
int x,y;
int cnt;
}obs[MAXN][MAXN];
int main()
{
int x,y;
int n,m,t;
int sum=0;
int sx,sy,fx,fy;
queue<node>loseway;
bool visited[MAXN][MAXN];
scanf("%d%d%d",&n,&m,&t);
scanf("%d%d%d%d",&sx,&sy,&fx,&fy);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
visited[i][j]=false;
for(int i=1;i<=t;i++)
{
scanf("%d%d",&x,&y);
visited[x][y]=true;
}
node start;
start.x=sx;start.y=sy;start.cnt=0;
visited[start.x][start.y]=true;
loseway.push(start);
while(!loseway.empty())
{
node p=loseway.front();
visited[p.x][p.y]=true;
if(p.x==fx&&p.y==fy)
{
sum++;
}
for(int i=1;i<=4;i++)
{
int nx=p.x+step_x[i];
int ny=p.y+step_y[i];
if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&!visited[nx][ny])
{
node a;
a.x=nx;a.y=ny;a.cnt=p.cnt+1;
loseway.push(a);
visited[nx][ny]=true;
}
}
loseway.pop();
}
printf("%d",sum);
return 0;
}