#include <cstdio>
#include <cstring>
using namespace std;
bool qiang[10][10],visit[10][10];
int ans,n,m,t,stx,sty,edx,edy;
const int dbx[4]={-1,0,0,1},
dby[4]={0,-1,1,0};
void dfs(int x,int y){
if(x==edx&&y==edy){
ans++;//到终点回头
return ;
}
if(qiang[x][y]) return ;//有墙就回头
if(visit[x][y]) return ;//走过了回头
//visit[stx][sty]=1;
for(int i=0;i<4;i++){
int tempx=x+dbx[i],tempy=y+dby[i];
visit[tempx][tempy]=1;//回溯
dfs(tempx,tempy);
visit[tempx][tempy]=0;
}
}
int main(){
memset(qiang,1,sizeof(qiang));//1代表是墙
scanf("%d%d%d",&n,&m,&t);
scanf("%d%d%d%d",&stx,&sty,&edx,&edy);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
qiang[i][j]=0;//标记能走的地方
for(int i=0,ix,iy;i<t;i++){
scanf("%d%d",&ix,&iy);
qiang[ix][iy]=1;//造墙
}
dfs(stx,sty);
printf("%d",ans);
return 0;
}