---
# System prepended metadata

title: Chuva (OBI 2019)

---

# 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]);
  }
}
```