# Chuva (OBI 2019)
```cpp=
#include<bits/stdc++.h>
using namespace std;
const int N = 505;
char parede[N][N];
int n, m;
void dfs(int x, int y) {
if(x >= n or y >= m) return;
if(parede[x][y] != '.') return;
parede[x][y] = 'o';
if(parede[x+1][y] != '#') {
dfs(x+1, y);
}
else {
dfs(x, y+1);
dfs(x, y-1);
}
}
int main() {
scanf("%d%d", &n, &m);
for (int i = 0; i < n; i++) scanf("%s", parede[i]);
cerr << n << ' ' << m << endl;
int x = 0, y;
for (int i = 0; i < m; i++) {
if (parede[0][i] == 'o') y = i;
}
// Estou usando a prĂ³pria parede como visitado
parede[x][y] = '.';
dfs(x, y);
for (int i = 0; i < n; i++) {
printf("%s\n", parede[i]);
}
}
```