Manchas


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type


Descripción


La temporada de frío ha llegado y, por lo tanto, las bebidas calientes son clave para sobrevivir. El perro Chato es muy juguetón, y mientras corría por la casa, tiró accidentalmente una taza de café sobre la alfombra. Notó algo curioso: las manchas que dejó el café parecían formar pequeños grupos. Chato, intrigado por su obra de arte, decidió contar cuántas manchas distintas había dejado en el piso.

Podemos imaginar la alfombra como una cuadrícula de \(N\) filas por \(M\) columnas. Cada posición puede estar manchada o limpia:

  • " * " indica una parte manchada.
  • " . " indica una parte limpia.

Dos posiciones manchadas pertenecen a la misma mancha si están conectadas vertical u horizontalmente (no en diagonal). Por ejemplo, si dos " * " comparten un lado, forman parte de la misma mancha.

Con esta información, ayuda a Chato a determinar cuántas manchas diferentes hay en la alfombra.


Entrada

En la primera línea dos enteros \(N\) y \(M\) \((1 \leq N, M \leq 2*10^3)\), las dimensiones de la alfombra.

En las siguientes \(N\) líneas, \(M\) caracteres (" * " o " . "), que representan el estado de cada parte de la alfombra.


Salida

El número total de manchas de café distintas que hay en la alfombra.


Ejemplo


Entrada

5 6
**....
....*.
...**.
.*....
***...

Salida

3


Entrada

4 4
...*
..*.
.*..
*.*.

Salida

5


Entrada

3 3
..*
***
*..

Salida

1


Notas

En el primer ejemplo, hay tres manchas distintas:

  1. Una mancha en la parte superior izquierda (formada por los dos primeros " * ").
  2. Una mancha al centro (formada por el grupo conectado de " * " en la zona media).
  3. Una mancha en la esquina inferior izquierda (conectada entre las últimas filas).

En el segundo ejemplo existen 5 manchas distintas, recuerda que dos celdas se consideran conectadas solo si comparten un lado (arriba, abajo, izquierda o derecha), no en diagonal.
Chato quiere contar correctamente las manchas, ¡no confundirlas!


Comments

There are no comments at the moment.