//no-unlocked const int dx[] = {0, 1}; const int dy[] = {1, 0}; int H, W; char A[12][12]{}; ll ans = 0; void dfs(int x, int y, int val) { if(A[x][y] == 'o') val += 1; else if(A[x][y] == 'x') val -= 1; if(x == H - 1 && y == W - 1 && val > 0) ans += 1, return; if(val >= 0) { rep(i, 2) { int nx = x + dx[i], ny = y + dy[i]; if(nx >= 0 && nx < H && ny >= 0 && ny < W && A[nx][ny] != '#') dfs(nx, ny, val); } } } { rd(H, W, A(H)(W)); dfs(0, 0, 0); wt(ans); }