#include <iostream>
#include <cstring>
using namespace std;
//看博友分析
int da[1004][1004];
int qx[1004];
int qy[1004];
int kx[1004];
int ky[1004];
int wx[1004];
int wy[1004];
int dx[8]={1,1,-1,-1,2,2,-2,-2};//马
int dy[8]={2,-2,2,-2,1,-1,1,-1};
int ax[8]={0,0,1,-1,1,1,-1,-1};//后
int ay[8]={1,-1,0,0,1,-1,1,-1};
int N,M;
void dfs(int x,int y,int ax,int ay)
{
if(x<1 || x>N || y<1 || y>M)
{
return;
}
if(da[x][y]==0)
{
da[x][y]=1;
}else if(da[x][y]==2)
{
return;
}
dfs(x+ax,y+ay,ax,ay);
}
int main()
{
int tag=0;
while(1)
{
tag++;
cin>>N>>M;
if(N==0 && M==0)
{
break;
}
memset(da,0,sizeof(da));
int qn,kn,wn;
cin>>qn;
for(int i=0;i<qn;i++)
{
int x,y;
cin>>x>>y;
qx[i]=x;
qy[i]=y;
da[x][y]=2;
}
cin>>kn;
for(int i=0;i<kn;i++)
{
int x,y;
cin>>x>>y;
kx[i]=x;
ky[i]=y;
da[x][y]=2;
}
cin>>wn;
for(int i=0;i<wn;i++)
{
int x,y;
cin>>x>>y;
wx[i]=x;
wy[i]=y;
da[x][y]=2;
}
for(int i=0;i<qn;i++)
{
int x=qx[i];
int y=qy[i];
for(int j=0;j<8;j++)
{
dfs(x+ax[j],y+ay[j],ax[j],ay[j]);
}
}
for(int i=0;i<kn;i++)
{
int x=kx[i];
int y=ky[i];
for(int j=0;j<8;j++)
{
int tx=x+dx[j];
int ty=y+dy[j];
if(tx>=1 && tx<=N && ty>=1 && ty<=M)
{
if(da[tx][ty]==0)
{
da[tx][ty]=1;
}
}
}
}
int jg=0;
for(int i=1;i<=N;i++)
{
for(int j=1;j<=M;j++)
{
if(da[i][j]==0)
{
jg++;
}
}
}
cout<<"Board "<<tag<<" has "<<jg<<" safe squares."<<endl;
}
return 0;
}