#include<iostream>
using namespace std;
char maps[15][15];
bool vis[15][15];
int n,m,t;
int sx,sy;
int fx,fy;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
int ans=0;
struct node
{
int x,y;
};
node obs[15];
void dfs(int x,int y)
{
if(x==fx&&y==fy)
{
ans++;
return;
}
for(int i=0;i<4;i++)
{
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>=0&&xx<=n&&yy>=0&&yy<=n&&maps[xx][yy]=='.'&&vis[xx][yy]!=true)
{
vis[xx][yy]=true;
dfs(xx,yy);
vis[xx][yy]=false;
}
}
}
int main()
{
cin>>n>>m>>t;
cin>>sx>>sy>>fx>>fy;
for(int i=0;i<t;i++)
{
cin>>obs[i].x>>obs[i].y;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
for(int k=0;k<t;k++)
{
if(i==obs[k].x&&j==obs[k].y)
{
maps[i][j]='#';
}
else
{
maps[i][j]='.';
}
}
}
}
vis[sx][sy]=true;
dfs(sx,sy);
cout<<ans<<endl;
return 0;
}
求调,玄关