// Slower C++ solution:
/*   _/                _/                 _/_/_/   _/

  _/_/_/_/   _/_/   _/_/_/_/   _/_/    _/       _/_/

   _/     _/    _/   _/     _/    _/  _/_/_/     _/

  _/     _/    _/   _/     _/    _/  _/    _/   _/

   _/_/   _/_/       _/_/   _/_/      _/_/     _/ */

#include<iostream>

#include<algorithm>

#include<cmath>

#include<iomanip>

#include<set>

#include<map>

#include<queue>

#include<vector>

using namespace std;

using ll=long long;

const int MOD=1e9+7;

const double pi=3.14159265358979323846;

const int inf=2e9;

const ll INF=1e18;

using P=pair<int,int>;

int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};

int main() {

  cin.tie(0),cout.tie(0);

  ios::sync_with_stdio(false);

  int h,w,dp[505][505]={},x,y;

  cin >> h >> w;

  string s[505]={};

  for(int i=0; i<h; i++) {

    cin >> s[i];

  }

  for(int i=0; i<h; i++) {

    for(int j=0; j<w; j++) {

      dp[i][j]=inf;

    }

  }

  if(s[0][0]=='.') {

    dp[0][0]=0;

  }

  else {

    dp[0][0]=1;

  }

  for(int i=0; i<h; i++) {

    for(int j=0; j<w; j++) {

      if(i==0&&j==0) {

        continue;

      }

      else {

        if(i==0) {

          dp[i][j]=min(dp[i][j],dp[i][j-1]+(s[i][j-1]=='.'&&s[i][j]=='#'));

        }

        else if(j==0) {

          dp[i][j]=min(dp[i][j],dp[i-1][j]+(s[i-1][j]=='.'&&s[i][j]=='#'));

        }

        else {

          x=dp[i-1][j]+(s[i][j]=='#'&&s[i-1][j]=='.');

          y=dp[i][j-1]+(s[i][j]=='#'&&s[i][j-1]=='.');

          dp[i][j]=min(x,y);

        }

      }

    }

  }

  cout << dp[h-1][w-1] << endl;

}

// Faster C++ solution for the same problem (measured speedup: 1.9497822156274394x):
/*   _/                _/                 _/_/_/   _/

  _/_/_/_/   _/_/   _/_/_/_/   _/_/    _/       _/_/

   _/     _/    _/   _/     _/    _/  _/_/_/     _/

  _/     _/    _/   _/     _/    _/  _/    _/   _/

   _/_/   _/_/       _/_/   _/_/      _/_/     _/ */

#include<iostream>

#include<algorithm>

#include<cmath>

#include<iomanip>

#include<set>

#include<map>

#include<queue>

#include<vector>

using namespace std;

using ll=long long;

const int MOD=1e9+7;

const double pi=3.14159265358979323846;

const int inf=2e9;

const ll INF=1e18;

using P=pair<int,int>;

int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};

int main() {

  cin.tie(0),cout.tie(0);

  ios::sync_with_stdio(false);

  int h,w,dp[105][105]={},x,y;

  cin >> h >> w;

  string s[105]={};

  for(int i=0; i<h; i++) {

    cin >> s[i];

  }

  for(int i=0; i<h; i++) {

    for(int j=0; j<w; j++) {

      dp[i][j]=inf;

    }

  }

  if(s[0][0]=='.') {

    dp[0][0]=0;

  }

  else {

    dp[0][0]=1;

  }

  for(int i=0; i<h; i++) {

    for(int j=0; j<w; j++) {

      if(i==0&&j==0) {

        continue;

      }

      else {

        if(i==0) {

          dp[i][j]=min(dp[i][j],dp[i][j-1]+(s[i][j-1]=='.'&&s[i][j]=='#'));

        }

        else if(j==0) {

          dp[i][j]=min(dp[i][j],dp[i-1][j]+(s[i-1][j]=='.'&&s[i][j]=='#'));

        }

        else {

          x=dp[i-1][j]+(s[i][j]=='#'&&s[i-1][j]=='.');

          y=dp[i][j-1]+(s[i][j]=='#'&&s[i][j-1]=='.');

          dp[i][j]=min(x,y);

        }

      }

    }

  }

  cout << dp[h-1][w-1] << "\n";

}