const
  InputFile = 'input.txt';
  OutputFile = 'output.txt';
  lake = '#';

var
  lakes, x, y, i, j: integer;
  f: text;
  a: array[0..500, 0..500] of char;
  b: array[0..500, 0..500] of boolean;

procedure LakeCheck(z, y: integer);
begin
  if not b[z, y] then
    if a[z, y] = lake then begin
      b[z, y] := true;
      if a[z+1,y] = lake then LakeCheck(z + 1, y);
      if a[z-1,y] = lake then LakeCheck(z - 1, y);
      if a[z,y+1] = lake then LakeCheck(z, y + 1);
      if a[z,y-1] = lake then LakeCheck(z, y - 1);
      
      if a[z+1,y+1] = lake then LakeCheck(z + 1, y + 1);
      if a[z-1,y-1] = lake then LakeCheck(z - 1, y - 1);
      if a[z-1,y+1] = lake then LakeCheck(z - 1, y + 1);
      if a[z+1,y-1] = lake then LakeCheck(z + 1, y - 1);     
     
    end;
end;

procedure Check(z, y: integer);
begin
  if not b[z, y] then begin
    inc(lakes);
    LakeCheck(z, y);    
  end;
end;

begin
  assignfile(f, InputFile);
  reset(f);
  read(f, y); readln(f, x);
  for i := 1 to y do 
  begin
    for j := 1 to x do 
      read(f, a[i, j]);
    readln(f);
  end;
  
  closefile(f);
  
  for i := 1 to y do
    for j := 1 to x do if a[i, j] = lake then check(i, j);
  
  assignfile(f, OutputFile);
  rewrite(f); write(f, lakes);
  close(f);
  
end.