{Floor Plan}

uses crt;

var
i,j,k,output,r,c:integer;
floor:array[1..50,1..50] of char;
numbers:array[1..5,1..2] of integer;
data3txt,out3txt:text;

procedure findsize(inx,iny:longint);
begin {1}
  if (floor[inx,iny]='.') or (floor[inx,iny] in['1'..'5']) then begin {2}
      floor[inx,iny]:='#';
      output:=output+1;

      if (inx>0) then begin
      findsize(inx,iny-1);
      findsize(inx,iny+1);
      end;

      if (iny>0) then begin
      findsize(inx-1,iny);
      findsize(inx+1,iny);
      end;

  end; {2}
end; {1}

begin {6}

assign(data3txt,'DATA3.txt');
   reset(data3txt);
assign(out3txt,'OUT3.txt');
   rewrite(out3txt);

readln(data3txt,r);
readln(data3txt,c);

for i:=1 to 50 do begin {8}
    for j:=1 to 50 do
       floor[i,j]:='#';
end; {8}


for i:=1 to r do begin {3}
      for j:=1 to c do begin {4}
         read(data3txt,floor[i,j]);
         if (floor[i,j] in['1'..'5']) then begin{7}
                k:=ord(floor[i,j])-48;
		numbers[k,1]:=i;
		numbers[k,2]:=j;
         end;{7}
      end; {4}
   readln(data3txt);
end; {3}


for i:=1 to 5 do begin{5}
   output:=0;
   findsize(numbers[i,1],numbers[i,2]);


   writeln(out3txt,output);
end;{5}

close(data3txt);
close(out3txt);

end.{6}





