#include<bits/stdc++.h>
using namespace std;
long n,m,cnt=0;
bool check[105][105];
char a[105][105];
void loang(long i,long j)
{
if(check[i][j]||i>=n||i<0||j>=m||j<0||a[i][j]=='#')
{
return;
}
cnt++;
check[i][j]=1;
loang(i+1,j);
loang(i,j+1);
loang(i-1,j);
loang(i,j-1);
}
int main()
{
cin>>n>>m;
long i,j;
for(i=0;i<n;i++)
{
cin>>a[i];
}
/*for(i=0;i<n;i++)
{
if(!check[i][0]&&a[i][0]=='.') loang(i,0);
if(!check[i][m-1]&&a[i][m-1]=='.') loang(i,m-1);
}
for(i=0;i<m;i++)
{
if(!check[0][i]&&a[0][i]=='.') loang(0,i);
if(!check[n-1][i]&&a[n-1][i]=='.') loang(n-1,i);
}*/
for(i=0; i<n;i++)
{
for(j=0;j<m;j++)
{
if(!check[i][j] && a[i][j] == '.' &&(i == 0 || i == n-1 || j == 0 || j == m - 1)) loang(i,j);
}
}
cout<<m*n-cnt;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKbG9uZyBuLG0sY250PTA7CmJvb2wgY2hlY2tbMTA1XVsxMDVdOwpjaGFyIGFbMTA1XVsxMDVdOwp2b2lkIGxvYW5nKGxvbmcgaSxsb25nIGopCnsKCWlmKGNoZWNrW2ldW2pdfHxpPj1ufHxpPDB8fGo+PW18fGo8MHx8YVtpXVtqXT09JyMnKQoJewoJCXJldHVybjsKCX0KCWNudCsrOwoJY2hlY2tbaV1bal09MTsKCWxvYW5nKGkrMSxqKTsKCWxvYW5nKGksaisxKTsKCWxvYW5nKGktMSxqKTsKCWxvYW5nKGksai0xKTsKfQppbnQgbWFpbigpCnsKCWNpbj4+bj4+bTsKCWxvbmcgaSxqOwoJZm9yKGk9MDtpPG47aSsrKQoJewoJCWNpbj4+YVtpXTsKCX0KCS8qZm9yKGk9MDtpPG47aSsrKQoJewoJCWlmKCFjaGVja1tpXVswXSYmYVtpXVswXT09Jy4nKSBsb2FuZyhpLDApOwoJCWlmKCFjaGVja1tpXVttLTFdJiZhW2ldW20tMV09PScuJykgbG9hbmcoaSxtLTEpOwoJfQoJZm9yKGk9MDtpPG07aSsrKQoJewoJCWlmKCFjaGVja1swXVtpXSYmYVswXVtpXT09Jy4nKSBsb2FuZygwLGkpOwoJCWlmKCFjaGVja1tuLTFdW2ldJiZhW24tMV1baV09PScuJykgbG9hbmcobi0xLGkpOwoJfSovCglmb3IoaT0wOyBpPG47aSsrKQoJewoJCWZvcihqPTA7ajxtO2orKykKCQl7CgkJCWlmKCFjaGVja1tpXVtqXSAmJiBhW2ldW2pdID09ICcuJyAmJihpID09IDAgfHwgaSA9PSBuLTEgfHwgaiA9PSAwIHx8IGogPT0gbSAtIDEpKSBsb2FuZyhpLGopOwoJCX0KCX0KCWNvdXQ8PG0qbi1jbnQ7Cn0=