#include <bits/stdc++.h>
using namespace std;
int main(){
int H,W; cin>>H>>W;
vector<string> S(H); for(int i=0;i<H;i++) cin>>S[i];
int dx[]={1,-1,0,0},dy[]={0,0,1,-1};
queue<pair<int,int>> q;
for(int i=0;i<H;i++) for(int j=0;j<W;j++) if(S[i][j]=='#') q.push({i,j});
while(!q.empty()){
int sz=q.size();
vector<pair<int,int>> nxt;
for(int t=0;t<sz;t++){
auto [i,j]=q.front(); q.pop();
for(int k=0;k<4;k++){
int ni=i+dx[k], nj=j+dy[k];
if(ni<0||ni>=H||nj<0||nj>=W||S[ni][nj]!='.') continue;
int c=0;
for(int l=0;l<4;l++){
int ti=ni+dx[l], tj=nj+dy[l];
if(ti>=0&&ti<H&&tj>=0&&tj<W&&S[ti][tj]=='#') c++;
}
if(c==1) nxt.push_back({ni,nj});
}
}
if(nxt.empty()) break;
for(auto [i,j]:nxt) S[i][j]='#', q.push({i,j});
}
int ans=0; for(auto &r:S) for(char c:r) ans+=c=='#';
cout<<ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluKCl7CiAgICBpbnQgSCxXOyBjaW4+Pkg+Plc7CiAgICB2ZWN0b3I8c3RyaW5nPiBTKEgpOyBmb3IoaW50IGk9MDtpPEg7aSsrKSBjaW4+PlNbaV07CiAgICBpbnQgZHhbXT17MSwtMSwwLDB9LGR5W109ezAsMCwxLC0xfTsKICAgIHF1ZXVlPHBhaXI8aW50LGludD4+IHE7CiAgICBmb3IoaW50IGk9MDtpPEg7aSsrKSBmb3IoaW50IGo9MDtqPFc7aisrKSBpZihTW2ldW2pdPT0nIycpIHEucHVzaCh7aSxqfSk7CiAgICB3aGlsZSghcS5lbXB0eSgpKXsKICAgICAgICBpbnQgc3o9cS5zaXplKCk7CiAgICAgICAgdmVjdG9yPHBhaXI8aW50LGludD4+IG54dDsKICAgICAgICBmb3IoaW50IHQ9MDt0PHN6O3QrKyl7CiAgICAgICAgICAgIGF1dG8gW2ksal09cS5mcm9udCgpOyBxLnBvcCgpOwogICAgICAgICAgICBmb3IoaW50IGs9MDtrPDQ7aysrKXsKICAgICAgICAgICAgICAgIGludCBuaT1pK2R4W2tdLCBuaj1qK2R5W2tdOwogICAgICAgICAgICAgICAgaWYobmk8MHx8bmk+PUh8fG5qPDB8fG5qPj1XfHxTW25pXVtual0hPScuJykgY29udGludWU7CiAgICAgICAgICAgICAgICBpbnQgYz0wOwogICAgICAgICAgICAgICAgZm9yKGludCBsPTA7bDw0O2wrKyl7CiAgICAgICAgICAgICAgICAgICAgaW50IHRpPW5pK2R4W2xdLCB0aj1uaitkeVtsXTsKICAgICAgICAgICAgICAgICAgICBpZih0aT49MCYmdGk8SCYmdGo+PTAmJnRqPFcmJlNbdGldW3RqXT09JyMnKSBjKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZihjPT0xKSBueHQucHVzaF9iYWNrKHtuaSxuan0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKG54dC5lbXB0eSgpKSBicmVhazsKICAgICAgICBmb3IoYXV0byBbaSxqXTpueHQpIFNbaV1bal09JyMnLCBxLnB1c2goe2ksan0pOwogICAgfQogICAgaW50IGFucz0wOyBmb3IoYXV0byAmcjpTKSBmb3IoY2hhciBjOnIpIGFucys9Yz09JyMnOwogICAgY291dDw8YW5zOwp9
MTAgMTAKLi4uLi4uLi4uLgouLi4uIy4uLi4uCiMuLi4uLi4uIy4KLi4uLi4uIy4uLgouLi4uLi4uIy4uCi4uLi4uIy4uLi4KLi4uLi4uLi4uLgouLi4uLi4uLi4uCi4uIy4uLiMuLi4KLi4uLi4uLiMuLgo=
10 10
..........
....#.....
#.......#.
......#...
.......#..
.....#....
..........
..........
..#...#...
.......#..