#include #define rep(i,n) for(int i=0;i ; const int INF = 1e9; const int MOD = 1000000007; int main(){ int h,w; cin >> h >> w; vector maze(h); rep(i,h) cin >> maze[i]; vector> dp(h,vector(w,INF)); rep(i,h)rep(j,w){ if(i==0 && j==0) dp[i][j] = 0; if(maze[i][j] == '.'){ if(i>0) dp[i][j] = min(dp[i][j],dp[i-1][j] + 1); if(j>0) dp[i][j] = min(dp[i][j],dp[i][j-1] + 1); }else{ if(i>0) dp[i][j] = min(dp[i][j],dp[i-1][j] + 1 + i + j); if(j>0) dp[i][j] = min(dp[i][j],dp[i][j-1] + 1 + i + j); } } cout << dp[h-1][w-1] << endl; return 0; }