#include <bits/stdc++.h>
using namespace std;

int main(){
  int h=0,w=0;
  cin>>h>>w;
  vector<vector<char>> a(h,vector<char>(w,0));
  vector<vector<int>> b(h,vector<int>(w,0));
  for(int i=0;i<h;i++){
    for(int j=0;j<w;j++){
      cin>>a.at(i).at(j);
      if(a.at(i).at(j)=='#')
        b.at(i).at(j)=1;
      else
        b.at(i).at(j)=0;
    }
  }
  int ans=0;
  for(int i=0;i<h-1;i++){
    for(int j=0;j<w-1;j++){
      int check;
      check=b.at(i).at(j)+b.at(i).at(j+1)+b.at(i+1).at(j)+b.at(i+1).at(j+1);
      if(check==1||check==3)
        ans++;
    }
  }
  cout<<ans<<endl;
  
  return 0;
}

#include <bits/stdc++.h>
#define rep(i, n) for(int i= 0; i < (n); i++)
using ll= long long int;
using namespace std;
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }
ll mod= 1e9 + 7;
ll mmod= 998244353;




int main() {
  int h,w;
  cin >> h >>w;
  bool a[h][w];
  rep(i,h)rep(j,w){
    char q;
    cin >> q;
    if(q=='.'){a[i][j]=0;}else{a[i][j]=1;}
  }

  int ans=0;
  rep(i,h-1)rep(j,w-1){
    int k=0;
    if(a[i][j])k++;
    if(a[i+1][j])k++;
    if(a[i][j+1])k++;
    if(a[i+1][j+1])k++;

    if(k%2==1)ans++;
  }
  cout << ans << endl;
}