#include<iostream>
#include<queue>
using namespace std;
struct node{
int x,y;
};
int mp[10][10],visit[10][10];//mp记录障碍,visit记录走过
int N,M,T;
int sx,sy,fx,fy;
int sum=0;
int dx[]={0,0,-1,1};
int dy[]={1,-1,0,0};
queue<node>q;
void bfs(node s)
{
q.push(s);
while(!q.empty())
{
node t=q.front();
q.pop();
for(int i=0;i<4;i++)
{
int a=t.x+dx[i],b=t.y+dy[i];
if(a<1||a>N||b<1||b>M||mp[a][b]||visit[a][b])
continue;
if(a==fx&&b==fx)
{
sum++;continue;
}
node w;
w.x=a;w.y=b;
visit[a][b]=1;
q.push(w);
}
}
}
int main()
{
cin>>N>>M>>T;
cin>>sx>>sy>>fx>>fy;
for(int i=1;i<=T;i++)
{
int u,v;
cin>>u>>v;
mp[u][v]=1;
}
node start;
start.x=sx;start.y=sy;
visit[sx][sy]=1;
bfs(start);
cout<<sum;
}