Grid Conexo

Você recebe dois inteiros H e W, representando a altura e a largura de um grid.
Em seguida, recebe H linhas contendo exatamente W caracteres cada, onde:

Considere cada célula livre como um nó de um grafo, com arestas entre células adjacentes horizontalmente ou verticalmente e bidirecionais.

Determine se, para cada componente conexo do grafo, é possível percorrer todas as células livres pelo menos uma vez, começando em qualquer célula livre.

Entrada

Saída

Se for possível percorrer todas as células livres pelo menos uma vez(.), imprima:

Sim

Caso contrário, imprima:

Não

Exemplo 1

Entrada

4 4
.###
...#
##.#
...#

Saída

Sim