#include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int H, W; cin >> H >> W; vector C(H); for (auto &s : C) cin >> s; const int INF = 1e9; int HH = 2 * H - 1, WW = 2 * W - 1; vector a(WW, INF), b(WW, INF), c(WW); for (int i = 0; i < HH; i++) { fill(c.begin(), c.end(), INF); for (int j = 0; j < WW; j++) { if (i % 2 == 0 && j % 2 == 0 && C[i / 2][j / 2] == '#') continue; int v = i || j ? INF : 0; if (i) v = min(v, b[j] + 1); if (j) v = min(v, c[j - 1] + 1); if (i >= 2 && i % 2 == 0) v = min(v, a[j] + 1); if (j >= 2 && j % 2 == 0) v = min(v, c[j - 2] + 1); c[j] = v; } a.swap(b); b.swap(c); } cout << b.back() << '\n'; }