{ SS84: Ngiam Jiquan, The Chinese High School }

program p2;

var
   f:text;
   grid:array[1..64,1..64] of integer;
   L,n,i,j:integer;

function image(x1,y1,size:integer):integer;
var
   hs,curr,k,l:integer;
   check:boolean;

begin
  check := true;
  curr := grid[x1,y1];
  for k := x1 to size+x1-1 do
  begin
     for l := y1 to size+y1-1 do
        if curr <> grid[k,l] then
        begin
           check := false;
           break;
        end;
     if check=false then break;
  end;

  if check then
  begin
     image := 2;
  end
  else
  begin
     hs := size div 2;
     image := 1 + image(x1+hs,y1,hs) + image(x1,y1,hs) 
                + image(x1+hs,y1+hs,hs) + image(x1,y1+hs,hs);
  end;
  
end;


begin

assign(f,'image.in');
reset(f);
read(f,L);
for i := 1 to L do
   for j := 1 to L do
      read(f,grid[i,j]);
close(f);
assign(f,'image.out');
rewrite(f);
writeln(f, image(1,1,L));
close(f);

end.


