#include<iostream>
#include<cstdio>
using namespace std;
int f[1100][1100];
long long ans=0;
int n,m,k,x,y;
bool Node_Edge(int x,int y)
{
if(x<1||x>n||y<1||y>n) return 0;
return 1;
}
void Node1(int x,int y)
{
for(int i=x-2;i<=x+2;i++) if(Node_Edge(i,y))f[i][y]=1;
for(int i=y-2;i<=y+2;i++) if(Node_Edge(x,i))f[x][i]=1;
if(Node_Edge(x-1,y-1))f[x-1][y-1]=1;
if(Node_Edge(x+1,y-1))f[x+1][y-1]=1;
if(Node_Edge(x-1,y+1))f[x-1][y+1]=1;
if(Node_Edge(x+1,y+1))f[x+1][y+1]=1;
}
void Node2(int x,int y)
{
int x1=x-2;
int y1=y-2;
for(int i=x1;i<=x1+5;i++)
for(int j=y1;j<=y1+5;j++) if(Node_Edge(i,j)) f[i][j]=1;
}
void Edge()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(f[i][j]==0) ans++;
}
int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
Node1(x,y);
}
for(int i=1;i<=k;i++)
{
scanf("%d%d",&x,&y);
Node2(x,y);
}
Edge();
cout<<ans;
return 0;
}