using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static string[] SList(long n) => Enumerable.Repeat(0, (int)n).Select(_ => ReadLine()).ToArray(); public static void Main() { Solve(); } static void Solve() { var c = NList; var (h, w) = (c[0], c[1]); var map = SList(h); var dp = new int[h, w, 21]; dp[0, 0, 1] = 1; for (var i = 0; i < h; ++i) for (var j = 0; j < w; ++j) for (var k = 0; k < 21; ++k) { if (i + 1 < h) { if (map[i + 1][j] == 'o' && k + 1 < 21) dp[i + 1, j, k + 1] += dp[i, j, k]; else if (map[i + 1][j] == 'x' && k > 0) dp[i + 1, j, k - 1] += dp[i, j, k]; } if (j + 1 < w) { if (map[i][j + 1] == 'o' && k + 1 < 21) dp[i, j + 1, k + 1] += dp[i, j, k]; else if (map[i][j + 1] == 'x' && k > 0) dp[i, j + 1, k - 1] += dp[i, j, k]; } } var ans = 0; for (var i = 0; i < 21; ++i) ans += dp[h - 1, w - 1, i]; WriteLine(ans); } }