#include<iostream>
using namespace std;
char z[1000][1000];
bool ma[1000][1000]={0};
long s=0,ans=0,sx,sy,fx,fy,m,n,t,tx[1000],ty[1000];
int bx[5]={0,-1,1,0,0},by[5]={0,0,0,-1,1};
void dfs(int i,int j){
for(int k=1;k<=t;k++)if(i==tx[k]&&j==ty[k])return;
if(ma[i][j])return;
if(i==fx&&j==fy){
ans++;
return;
}
ma[i][j]=1;
for(int k=1;k<=4;k++){
if(i+bx[k]<0||i+bx[k]>m||j+by[k]<0||j+by[k]>n)continue;
dfs(i+bx[k],j+by[k]);
}
ma[i][j]=0;
return;
}
int main(){
cin>>m>>n>>t;
cin>>sx>>sy>>fx>>fy;
for(int k=1;k<=t;k++)cin>>tx[k]>>ty[k];
dfs(sx,sy);
cout<<ans<<endl;
return 0;
}```