// Simple BFS
# Include <iostream>
# Include <fstream>
Using namespace STD;
Char map [110] [110];
Int flag [110] [110];
Int Qu [11000] [2], QE, QS, M, N;
Int add [8] [2] = {-1,-1,-,-, 0,-1, 1,-1 };
void BFS (int r, int c)
{int I, TR, TC;
Qs = Qe = 0; flag [r] [c] = 1; QE ++;
Qu [QS] [0] = r; qu [QS] [1] = C;
while (QS {for (I = 0; I <8; I ++)
{TR = Qu [QS] [0] + Add [I] [0]; tc = Qu [QS] [1] + Add [I] [1];
If (TR <= M & tr> = 1 & tc <= N & TC> = 1 & flag [tr] [TC] = 0 & & map [tr] [TC] = '@')
{Qu [QE] [0] = TR; qu [QE] [1] = tc;
flag [tr] [TC] = 1; qe ++;
}< BR >}< br> QS ++;
}< BR >}
Int main ()
{Int I, J;
While (scanf ("% d", & M, & N), m)
{Int COUNT = 0; memset (flag, 0, sizeof (FLAG ));
Memset (qu, 0, sizeof (qu ));
For (I = 1; I <= m; I ++) scanf ("% s", map [I] + 1 );
For (I = 1; I <= m; I ++)
For (j = 1; j <= N; j ++)
If (flag [I] [J] = 0 & map [I] [J] = '@')
{BFS (I, j); count ++ ;}
Printf ("% d \ n", count );
}
Return 0;
}