{
"GRIGORE MOISIL"
NAME: IUGA Alexandru
DIVISION: INTERMEDIATE 5
GRADE: 10
}
var int:string;
matrix:array[1..7,1..7]
of char;
x,y,n,m,code,i:integer;
rules:array[1..2,1..8]
of integer;
verif:array[1..5,1..2]
of integer;
procedure citire;
begin
fillchar(matrix,sizeof(matrix),'D');
assign(input,'cell.in');
reset(input);
{ line #1 }
readln(int);
delete(int,1,pos(',',int));
while length(int)>0 do
begin
val(int[1],x,code);
val(int[3],y,code);
matrix[x,y]:='A';
delete(int,1,4);
end;
{ /line #1 }
{ line #2 }
readln(int);
int:=int+',';
val(copy(int,1,pos(',',int)-1),n,code);
delete(int,1,pos(',',int));
for i:=1 to n do
begin
val(copy(int,1,pos(',',int)-1),rules[1,i],code);
delete(int,1,pos(',',int));
end;
val(copy(int,1,pos(',',int)-1),m,code);
delete(int,1,pos(',',int));
for i:=1 to m do
begin
val(copy(int,1,pos(',',int)-1),rules[2,i],code);
delete(int,1,pos(',',int));
end;
{ /line #2 }
{ lines 3-> last }
for i:=1
to 5 do
begin
readln(int);
val(int[1],x,code);
val(int[length(int)],y,code);
verif[i,1]:=x;verif[i,2]:=y;
end;
end;
procedure verifica;
var z,ii:integer;
bl:boolean;
begin
bl:=false;
z:=0;
write(matrix[verif[i,1],verif[i,2]]);
x:=verif[i,1]; y:=verif[i,2];
if matrix[x,y-1] =
'A' then inc(z);
if matrix[x-1,y] =
'A' then inc(z);
if matrix[x,y+1] =
'A' then inc(z);
if matrix[x+1,y] =
'A' then inc(z);
if matrix[x+1,y+1] =
'A' then inc(z);
if matrix[x-1,y-1] =
'A' then inc(z);
if matrix[x-1,y+1] =
'A' then inc(z);
if matrix[x+1,y-1] =
'A' then inc(z);
write(',',z,',');
if matrix[x,y]='A' then
begin
for ii:=1 to m do
if rules[2,ii] = z
then bl:=true;
if bl then write('A') else write('D');
end;
if matrix[x,y]='D' then
begin
for ii:=1 to n do
if rules[1,ii] = z
then bl:=true;
if bl then write('A') else write('D');
end;
writeln;
end;
begin
citire;
assign(output,'cell.out');
rewrite(output);
for i:=1 to 5 do
verifica;
close(output);
end.