#include<bits/stdc++.h>
using namespace std;
const int N=1100;
bool vis[N][N];
char sd[N][N];
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};
int n,m,ans=0;
void dfs(int x,int y){
sd[x][y]='1';
for(int i=0;i<4;i++){
int nx=x+dx[i];
int ny=y+dy[i];
if(nx>0&&ny>0&&nx<=n&&ny<=m&&sd[nx][ny]=='#'){
dfs(nx,ny);
}
}
}
bool d(int i,int j){
int c=0;
if(sd[i][j]=='#')c++;
if(sd[i+1][j]=='#')c++;
if(sd[i][j+1]=='#')c++;
if(sd[i+1][j+1]=='#')c++;
if(c==3)return 0;
return 1;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>sd[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i<n&&j<m&&d(i,j)==0){
cout<<"Bad placement.";
return 0;
}
}
}
for(int w=1;w<=n;w++){
for(int v=1;v<=m;v++){
if(sd[w][v]=='#'){
ans++;dfs(w,v);
}
}
}
if(ans>0){
printf("here are %d ships.",ans);
}else{
printf("Bad placement.");
}
return 0;
}
37分,好无语