#include<bits/stdc++.h>
#define ll long long;
#define inf 0x3f3f3f3f
#define fi first
#define se second
using namespace std;
bool go[6][6],map_[6][6];
int ans,fx,fy,sx,sy,n,m,t;
int ax[4]={-1,0,1,0};
int ay[4]={0,1,0,-1};
void dfs(int x,int y){
if(x==sx&&y==sy){
ans++;
return;
}
for(int i=0;i<=3;i++){
if(go[x+ax[i]][y+ay[i]]&&map_[x+ax[i]][y+ay[i]]){
go[x+ax[i]][y+ay[i]]=0;
dfs(x+ax[i],y+ay[i]);
go[x+ax[i]][y+ay[i]]=1;
}
}
}
int main(){
memset(go,1,sizeof(go));
memset(map_,0,sizeof(map_));
scanf("%d%d%d",&n,&m,&t);
scanf("%d%d%d%d",&fx,&fy,&sx,&sy);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++) map_[i][j]=1;
}
while(t--){
int x,y;
scanf("%d%d",&x,&y);
map_[x][y]=0;
}
dfs(fx,fy);
printf("%d",ans);
return 0;
}
Help!