#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node{
ll x,y;
};
ll n,m,t,a[10][10],flag=0;
ll walk[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
queue<node> q;
int main(){
cin>>n>>m>>t;
ll sx,sy,fx,fy;
cin>>sx>>sy>>fx>>fy;
memset(a,0,sizeof(a));
for(ll i=1;i<=t;i++){
ll c,d;
cin>>c>>d;
a[c][d]=1;
}
a[sx][sy]=1;
q.push((node){sx,sy});
while(q.size()){
node u=q.front();
ll ux=u.x,uy=u.y;
q.pop();
if(ux==fx&&uy==fy){
flag++;
a[ux][uy]=0;
continue;
}
for(ll k=0;k<4;k++){
ll cx=ux+walk[k][0],cy=uy+walk[k][1];
if(cx<1||cx>n||cy<1||cy>m||a[cx][cy]==1) continue;
a[cx][cy]=1;
q.push((node){cx,cy});
}
}
cout<<flag;
return 0;
}