30分求调
#include<bits/stdc++.h>
using namespace std;
int n,m,t,x[6][6],t1,t2,sx,sy,fx,fy,ans=0;
void dfs(int a,int b){
if(a==fx&&b==fy){
ans++;
return;
}
if(a+1<=n&&x[a+1][b]==0){
x[a+1][b]=1;
dfs(a+1,b);
x[a+1][b]=0;
}
if(a-1>=0&&x[a-1][b]==0){
x[a-1][b]=1;
dfs(a-1,b);
x[a-1][b]=0;
}
if(b+1<=n&&x[a][b+1]==0){
x[a][b+1]=1;
dfs(a,b+1);
x[a][b+1]=0;
}
if(b-1>=0&&x[a][b-1]==0){
x[a][b-1]=1;
dfs(a,b-1);
x[a][b-1]=0;
}
}
int main(){
cin>>n>>m>>t;
memset(x,0,sizeof(x));
cin>>sx>>sy>>fx>>fy;
for(int i=1;i<=t;i++){
cin>>t1>>t2;
x[t1][t2]=1;
}
dfs(sx,sy);
cout<<ans;
return 0;
}