#include <bits/stdc++.h>
using namespace std;
const int N = 105;
int n, m;
char a[N][N];
int ans[N][N];
int res = 0;
void upd(int x, int y, int add) {
  for (int i = x; i >= 1; --i) {
    for (int j = y; j >= 1; --j) ans[i][j] += add;
  }
}
int main() {
  cin >> n >> m;
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= m; ++j) {
      cin >> a[i][j];
    }
  }
  int j = m;
  for (int i = n; i >= 1; --i) {
    int x = i;
    for (int y = m; y >= 1 && x <= n; --y) {
      if (a[x][y] == 'W') {
        if (ans[x][y] != -1) {
          if (ans[x][y] < 0) {
            upd(x, y, -ans[x][y] - 1);
          } else {
            upd(x, y, -(ans[x][y] + 1));
          }
          ++res;
        }
      } else {
        if (ans[x][y] != 1) {
          if (ans[x][y] < 0) {
            upd(x, y, -ans[x][y] + 1);
          } else {
            upd(x, y, -(ans[x][y] - 1));
          }
          ++res;
        }
      }
      ++x;
    }
  }
  for (int j = m - 1; j >= 1; --j) {
    int y = j;
    for (int x = 1; x <= n && y >= 1; ++x) {
      if (a[x][y] == 'W') {
        if (ans[x][y] != -1) {
          if (ans[x][y] < 0) {
            upd(x, y, -ans[x][y] - 1);
          } else {
            upd(x, y, -(ans[x][y] + 1));
          }
          ++res;
        }
      } else {
        if (ans[x][y] != 1) {
          if (ans[x][y] < 0) {
            upd(x, y, -ans[x][y] + 1);
          } else {
            upd(x, y, -(ans[x][y] - 1));
          }
          ++res;
        }
      }
      --y;
    }
  }
  printf("%d\n", res);
  return 0;
}
