Batalha Naval

notion image
Você é um(a) dos(as) desenvolvedores(as) do jogo Sea Battle. Agora, sua responsabilidade é atualizar uma das estatísticas mais importantes do jogo: dada uma grelha, é preciso determinar quantos navios estão healthy (intactos), dead (destruídos) e wounded (danificados). Sabe-se que:
  • Nenhum navio partilha um lado. Portanto, se duas células vizinhas na grelha estão marcadas como parte de um navio, então fazem parte do mesmo navio.
  • Neste jogo, os navios não precisam estar em linha reta. É um modo avançado do jogo disponível para utilizadores premium.
  • Se nenhum bombardeamento atingiu o navio, ele está healthy.
  • Se todas as células do navio forem bombardeadas, ele está dead.
  • Se apenas algumas células foram bombardeadas, o navio é considerado wounded.
Deverá escrever um programa que, dada a grelha com a situação atual, imprima quantos navios estão healthy, dead e wounded.

Entrada

A primeira linha da entrada contém dois caracteres r e c (1 ≤ r, c ≤ 50) - o número de linhas e colunas da grelha.
Nas próximas r linhas, há c colunas de caracteres que representam a grelha:
  • . representa água (sem navio)
  • s representa uma célula de navio intacto
  • b representa uma célula de navio bombardeada

Saída

O programa deve imprimir 3 números: a quantidade de navios healthy, dead e wounded.

Exemplos

Input

7 8
..s.bb.s
s.......
s.sssss.
b.s...s.
..sssbs.
s.......
ss......
Output

3 1 2
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue