program soitario;
uses Math;
var N,M,i,j, soluzione, con_x, senza_x, nuovariga, nuovacolonna:longint;
griglia:array[0..12,0..12] of longint;
function gioca(r, c: longint): boolean;
begin
(*tris orizzontale*)
if (c-2>=0) and (griglia[r][c-2]=1) and (griglia[r][c-1]=1) then gioca:=false
(*tris orizzontale*)
else if (r-2>=0) and (griglia[r-2][c]=1) and (griglia[r-1][c]=1) then gioca:=false
(* Tris diagonale in alto a sx*)
else if (r-2>=0 ) and (c-2>=0) and (griglia[r-2][c-2]=1) and (griglia[r-1][c-1]=1) then gioca:=false
(* Tris diagonale in alto a dx*)
else if (r-2>=0) and (c+2<=M) and (griglia[r-2][c+2]=1) and (griglia[r-1][c+1]=1) then gioca:=false
else gioca := true;
end;
function riempi (riga, colonna:longint):longint;
begin
if riga>=N then begin riempi:=0; exit end
else
begin
if griglia[riga,colonna]=-1 then
begin
(*Se posso, metto la X*)
if gioca (riga,colonna)=true then
begin
griglia[riga][colonna]:=1;
if colonna+1=M then nuovariga:=riga+1
else nuovariga:=riga;
nuovacolonna:= (colonna+1) mod M;
con_x:= 1 + Riempi(nuovariga,nuovacolonna);
(* Reset della griglia[riga][col]*)
griglia[riga][colonna]:=-1;
end
else
begin
(* Non metto la X*)
griglia[riga][colonna]:=0;
if colonna+1=M then nuovariga:=riga+1
else nuovariga:=riga;
nuovacolonna:= (colonna+1) mod M;
senza_x:= Riempi(nuovariga,nuovacolonna);
con_x:=0;
griglia[riga][colonna]:=-1;
end;
(*Ritorno la soluzione migliore*)
griglia[riga][colonna]:= max(con_x, senza_x);
riempi:=griglia[riga,colonna] ;
end;
riempi:=griglia[riga,colonna] ;
end;
end;
begin
readln(N,M);
for i:=0 to N do
for j:=0 to M do griglia[i,j]:=-1;
writeln(riempi(1 ,1));
end.
cHJvZ3JhbSBzb2l0YXJpbzsKdXNlcyBNYXRoOwp2YXIgTixNLGksaiwgc29sdXppb25lLCBjb25feCwgc2VuemFfeCwgbnVvdmFyaWdhLCBudW92YWNvbG9ubmE6bG9uZ2ludDsKICAgIGdyaWdsaWE6YXJyYXlbMC4uMTIsMC4uMTJdIG9mIGxvbmdpbnQ7CiAgICAKZnVuY3Rpb24gZ2lvY2EociwgYzogbG9uZ2ludCk6IGJvb2xlYW47CmJlZ2luCiAgICAgICgqdHJpcyBvcml6em9udGFsZSopCiAgIGlmIChjLTI+PTApIGFuZCAoZ3JpZ2xpYVtyXVtjLTJdPTEpIGFuZCAoZ3JpZ2xpYVtyXVtjLTFdPTEpIHRoZW4gZ2lvY2E6PWZhbHNlCiAgICAgICgqdHJpcyBvcml6em9udGFsZSopCiAgICAgIGVsc2UgIGlmIChyLTI+PTApIGFuZCAoZ3JpZ2xpYVtyLTJdW2NdPTEpIGFuZCAoZ3JpZ2xpYVtyLTFdW2NdPTEpIHRoZW4gZ2lvY2E6PWZhbHNlCiAgICAoKiBUcmlzIGRpYWdvbmFsZSBpbiBhbHRvIGEgc3gqKQogICAgICBlbHNlIGlmIChyLTI+PTAgKSBhbmQgKGMtMj49MCkgYW5kIChncmlnbGlhW3ItMl1bYy0yXT0xKSBhbmQgKGdyaWdsaWFbci0xXVtjLTFdPTEpIHRoZW4gZ2lvY2E6PWZhbHNlCiAgICAoKiBUcmlzIGRpYWdvbmFsZSBpbiBhbHRvIGEgZHgqKQogICAgICBlbHNlIGlmIChyLTI+PTApIGFuZCAoYysyPD1NKSBhbmQgKGdyaWdsaWFbci0yXVtjKzJdPTEpIGFuZCAoZ3JpZ2xpYVtyLTFdW2MrMV09MSkgdGhlbiBnaW9jYTo9ZmFsc2UKICAgICAgICAgIGVsc2UgICBnaW9jYSA6PSB0cnVlOwplbmQ7ICAgIApmdW5jdGlvbiByaWVtcGkgKHJpZ2EsIGNvbG9ubmE6bG9uZ2ludCk6bG9uZ2ludDsKICBiZWdpbgogICAgaWYgcmlnYT49TiB0aGVuIGJlZ2luICByaWVtcGk6PTA7IGV4aXQgZW5kCiAgICAgICAgICAgICAgICAgICBlbHNlIAogICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICBpZiBncmlnbGlhW3JpZ2EsY29sb25uYV09LTEgdGhlbiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpTZSBwb3NzbywgbWV0dG8gbGEgWCopCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZ2lvY2EgKHJpZ2EsY29sb25uYSk9dHJ1ZSB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWdsaWFbcmlnYV1bY29sb25uYV06PTE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvbG9ubmErMT1NIHRoZW4gbnVvdmFyaWdhOj1yaWdhKzEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgbnVvdmFyaWdhOj1yaWdhOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW92YWNvbG9ubmE6PSAoY29sb25uYSsxKSBtb2QgTTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uX3g6PSAxICsgUmllbXBpKG51b3ZhcmlnYSxudW92YWNvbG9ubmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogUmVzZXQgZGVsbGEgZ3JpZ2xpYVtyaWdhXVtjb2xdKikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWdsaWFbcmlnYV1bY29sb25uYV06PS0xOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogTm9uIG1ldHRvIGxhIFgqKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWdsaWFbcmlnYV1bY29sb25uYV06PTA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29sb25uYSsxPU0gdGhlbiBudW92YXJpZ2E6PXJpZ2ErMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBudW92YXJpZ2E6PXJpZ2E7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51b3ZhY29sb25uYTo9IChjb2xvbm5hKzEpIG1vZCBNOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW56YV94Oj0gUmllbXBpKG51b3ZhcmlnYSxudW92YWNvbG9ubmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25feDo9MDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZ2xpYVtyaWdhXVtjb2xvbm5hXTo9LTE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDsgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqUml0b3JubyBsYSBzb2x1emlvbmUgbWlnbGlvcmUqKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWdsaWFbcmlnYV1bY29sb25uYV06PSBtYXgoY29uX3gsIHNlbnphX3gpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZW1waTo9Z3JpZ2xpYVtyaWdhLGNvbG9ubmFdIDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWVtcGk6PWdyaWdsaWFbcmlnYSxjb2xvbm5hXSA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgZW5kOwogICAgICAgICAgICAgIAplbmQ7ICAgICAgICAgICAgICAgICAgIApiZWdpbgoJcmVhZGxuKE4sTSk7Cglmb3IgaTo9MCB0byBOIGRvCgkgICAgICAgICAgICBmb3Igajo9MCB0byBNIGRvIGdyaWdsaWFbaSxqXTo9LTE7Cgl3cml0ZWxuKHJpZW1waSgxICwxKSk7CmVuZC4=