#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int x , y;
cin >> x >> y;
char grid[x][y];
int ans[x][y];
for(int loop = 0; loop < x; loop++){
for(int lloop = 0; lloop < y; lloop++){
cin >> grid[loop][lloop];
if(grid[loop][lloop] == '.')
ans[loop][lloop] = 0;
else ans[loop][lloop] = 1;
}
}
for(int i = 1; i <= 100; i++){
int rr[2500],ss[2500],cnt=0;
for(int loo = 0; loo < x; loo++){
for(int coo = 0; coo < y; coo++){
int tsum = 0;
if(coo > 0) tsum += ans[loo][coo-1];
if(coo < y-1) tsum += ans[loo][coo+1];
if(loo > 0) tsum += ans[loo-1][coo];
if(loo < x-1) tsum += ans[loo+1][coo];
if(coo > 0 && loo > 0) tsum += ans[loo-1][coo-1];
if(coo > 0 && loo < x-1) tsum += ans[loo+1][coo-1];
if(coo < y-1 && loo > 0) tsum += ans[loo-1][coo+1];
if(coo < y-1 && loo < x-1) tsum += ans[loo+1][coo+1];
if(tsum == 3 && ans[loo][coo] == 0){
rr[cnt] = loo; ss[cnt++] = coo;
//cout << rr[cnt -1] << " " << ss[cnt-1] << " " << tsum << endl;
}
if((tsum > 3 || tsum < 2)&& ans[loo][coo] == 1){
rr[cnt] = loo; ss[cnt++] = coo;
//cout << rr[cnt -1] << " " << ss[cnt-1] << " " << tsum << endl;
}
}
}
//swap
for(int poo = 0; poo < cnt; poo++){
//cout<<rr[poo] << " " << ss[poo] << endl;
if (ans[rr[poo]][ss[poo]] == 0)
ans[rr[poo]][ss[poo]] = 1;
else ans[rr[poo]][ss[poo]] = 0;
}
if(i == 1 || i == 5 || i == 10 || i == 50 || i == 100){
int sum = 0;
for(int loo = 0; loo < x; loo++){
for(int coo = 0; coo < y; coo++){
sum += ans[loo][coo];
//cout << ans[loo][coo];
}
//cout << endl;
}
cout << sum<<endl;
}
}
return 0;
}