#include char pole[1010][1010]; int kont(int n, int k) { int i, j, x, y; y = k; while(pole[n][y] == '#') { pole[n][y] = '.'; y++; } y--; i = n + 1; j = k; while(pole[i][j] == '#') { if(pole[i][k-1] == '#' || pole[i][y+1] == '#') { // printf("x"); return 0; } for(j=k; j<=y; j++) { if(pole[i][j] == '.') { return 0;} pole[i][j] = '.'; } i++; j = n; } for(j=k-1; j<=y+1; j++) { if(pole[i][j] == '#') { return 0; } } return 1; } int main() { int r, r1,c1, c,i, j, pocet; xxx: scanf("%i %i", &r, &c); while(r != 0 || c != 0) { // printf("%i %i", r, c); getchar(); pocet = 0; c1 = c+1; r1 = r+1; for(i=1; i<=r; i++) { for(j=1; j<=c; j++) { pole[i][j] = getchar(); // printf ("%c", pole[i][j]); } getchar (); } for(i=0; i<=c1; i++) pole[0][i] = pole[r1][i] = '.'; for(i=0; i<=r1; i++) pole[i][0] = pole[i][c1] = '.'; for(i=1; i<=r; i++) for(j=1; j<=c; j++) { if(pole[i][j] == '#') { if(!kont(i, j)) { printf("Bad placement.\n"); goto xxx; } else pocet++; } } printf("There are %i ships.\n", pocet); scanf("%i %i", &r, &c); } return 0; }