#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstring>
#include <string>
#include <istream>
#include <iostream>
using namespace std;
const int maxm = 100;
char grid[maxm + 5][maxm + 5];
int visited[maxm + 5][maxm + 5];
int m, n;
int ans;
bool count(int i, int j)
{
if (i < 0 || i >= m || j < 0 || j >= n || grid[i][j] == '*' || visited[i][j])
return false;
visited[i][j] = 1;
count(i + 1, j);
count(i - 1, j);
count(i, j + 1);
count(i, j - 1);
count(i + 1, j + 1);
count(i + 1, j - 1);
count(i - 1, j + 1);
count(i - 1, j - 1);
return true;
}
int main()
{
while (cin >> m >> n && m > 0) {
memset(grid, 0, sizeof(grid));
memset(visited, 0, sizeof(visited));
ans = 0;
string line;
getline(cin, line); // consume the newline
for (int i = 0; i < m; i++) {
getline(cin, line);
for (int j = 0; j < n; j++) {
grid[i][j] = line[j];
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (count(i, j))
ans++;
}
}
cout << ans << endl;
}
return 0;
}