#include <bits/stdc++.h>
using namespace std;
int w;
int c;
char ch;
int ans;
int r;
int l;
bool p[1004][1004];
bool p1[1005][1004];
bool p2[1004][1004];
bool n[1004][1004];
int s;
void dfs(int a,int b)
{
p[a][b]=1;
if(p[a+1][b]==0&&n[a+1][b]==1) {
s++;
dfs(a+1,b);
}
if(p[a-1][b]==0&&n[a-1][b]==1) {
s++;
dfs(a-1,b);
}
if(p[a][b+1]==0&&n[a][b+1]==1) {
s++;
dfs(a,b+1);
}
if(p[a][b-1]==0&&n[a][b-1]==1) {
s++;
dfs(a,b-1);
}
}
void dfs_l(int a,int b)
{
p1[a][b]=1;
if(p1[a][b+1]==0&&n[a][b+1]==1) {
l++;
dfs_l(a,b+1);
}
if(p1[a][b-1]==0&&n[a][b-1]==1) {
l++;
dfs_l(a,b-1);
}
}
void dfs_r(int a,int b)
{
if(p2[a+1][b]==0&&n[a+1][b]==1) {
p2[a+1][b]=1;
r++;
dfs_r(a+1,b);
}
if(p2[a-1][b]==0&&n[a-1][b]==1) {
p2[a-1][b]=1;
r++;
dfs_r(a-1,b);
}
}
int main()
{
cin>>w>>c;
getchar();
for(int i=1;i<=w;i++){
for(int j=1;j<=c;j++){
ch=getchar();
if(ch=='.') n[i][j]=0;
else n[i][j]=1;
}
getchar();
}
for(int i=1;i<=w;i++){
for(int j=1;j<=c;j++){
if(p[i][j]==0&&n[i][j]==1) {
s=1;r=1;l=1;p[i][j]=1;p1[i][j]=1;p2[i][j]=1;
dfs(i,j);
dfs_l(i,j);
dfs_r(i,j);
if(s==r*l) ans++;
else{
cout<<"Bad placement.";
return 0;
}
}
}
}
cout<<"There are "<<ans<<" ships.";
return 0;
}