#include <bits/stdc++.h>
using namespace std;
#define int long long
int nex[4][2]={//方向数组
{1,0},//向右走
{0,1},//向下走
{-1,0},//向左走
{0,-1}//向上走
};
int N,M,T;//长宽障碍总数
int SX,SY,FX,FY;
int res=0;
int visit[100][100];//标记数组
int **board;
void dfs(int x,int y){
if(x==FX&&y==FY){
res++;
return ;
}
for(int i=0;i<=3;i++){
int tx,ty;
tx=x+nex[i][0];
ty=y+nex[i][1];
if(tx<SX||tx>FX||ty<SY||ty>FY){
continue;
}
if(visit[tx][ty]==0&&board[tx][ty]==0){
visit[tx][ty]=1;
dfs(tx,ty);
visit[tx][ty]=0;
}
}
}
signed main(){
cin >> N >> M >> T;
cin >> SX >> SY >> FX >> FY;
board=new int*[FX+1];
for(int i=0;i<FX+1;i++){
board[i]=new int[FY+1];
}
for(int i=0;i<FX+1;i++){
for(int j=0;j<FY+1;j++){
board[i][j]=0;
}
}
for(int i=0;i<T;i++){
int x,y;
cin >> x >> y;
board[x][y]=1;
}
dfs(SX,SY);
cout << res;
}