const
dx:array[1..4] of longint=(-1,0,1,0);
dy:array[1..4] of longint=(0,1,0,-1);
var
a:array[0..100,0..100] of longint;
flag:array[0..100,0..100] of boolean;
i,j,x1,x2,y1,y2,p,q,n,m,t,ans:longint;
procedure find(x,y:longint);
var
i:longint;
begin
if (x<1) or (x>n) or (y<1) or (y>n) then exit;
if (x=x2) and (y=y2) then
begin
inc(ans);
exit;
end;
for i:=1 to 4 do
if (a[x+dx[i],y+dy[i]]=0) and (flag[x+dx[i],y+dy[i]]=true) then
begin
flag[x+dx[i],y+dy[i]]:=false;
find(x+dx[i],y+dy[i]);
flag[x+dx[i],y+dy[i]]:=true;
end;
end;
begin
readln(n,m,t);
readln(x1,y1,x2,y2);
fillchar(a,sizeof(a),0);
fillchar(flag,sizeof(flag),true);
for i:=1 to t do
begin
readln(p,q);
a[p,q]:=1;
end;
find(x1,y1);
write(ans);
end.