const int dx[] = {0, 1}; const int dy[] = {1, 0}; ll f[11][11][21]{0}; char A[11][11]{}; int @H,@W; rd(A(H)(W)); f[0][0][1] = 1; rep(i, H) rep(j, W) { if(A[i][j] == '#') continue; rep(val, 21) { if(f[i][j][val] == 0) continue; rep(k, 2) { int nx = i + dx[k], ny = j + dy[k]; if(nx >= 0 && nx < H && ny >= 0 && ny < W && A[nx][ny] != '#') { int nval = val + (A[nx][ny] == 'o' ? 1 : -1); if(nval < 0) continue; f[nx][ny][nval] += f[i][j][val]; } } } } ll ans = 0; rep(val, 21) ans += f[H - 1][W - 1][val]; wt(ans);