#include<bits/stdc++.h>
using namespace std;
int n,m;
struct node{
int shu;
int bian;
};
node a[550][550];
int ans;
void found(int q1,int q2){
if(q1==1||q2==1){
return ;
}
if(a[q1-1][q2].shu!=1&&a[q1-1][q2].bian==0){
a[q1-1][q2].bian=1;
if(a[q1-1][q2].shu==2) ans--;
a[q1-1][q2].shu=0;
found(q1-1,q2);
}
if(a[q1][q2-1].shu!=1&&a[q1][q2-1].bian==0){
a[q1][q2-1].bian=1;
if(a[q1][q2-1].shu==2) ans--;
a[q1][q2-1].shu=0;
found(q1,q2-1);
}
if(a[q1-1][q2-1].shu!=1&&a[q1-1][q2-1].bian==0){
a[q1-1][q2-1].bian=1;
if(a[q1-1][q2-1].shu==2) ans--;
a[q1-1][q2-1].shu=0;
found(q1-1,q2-1);
}
return ;
}
void bfs(){
for(int x=1;x<=n;x++){
for(int y=1;y<=m;y++){
if(a[x][y].shu==1){
continue;
}else if((x==1||y==1||x==n||y==n||a[x-1][y].bian==1||a[x][y-1].bian==1||a[x-1][y-1].bian==1)){
a[x][y].bian=1;
found(x,y);
}else{
a[x][y].shu=2;
ans++;
}
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
char lin;
cin>>lin;
if(lin=='*') a[i][j].shu=1;
else a[i][j].shu=0;
}
}
bfs();
cerr<<endl;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cerr<<a[i][j].shu<<" ";
}
cerr<<endl;
}
cout<<ans;
return 0;
}