import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
public class P3392涂国旗 {
static int n, m;
static int cw, cb, cr;
static int last = 1;
static char[][] map;
static int count;
static int flag;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StreamTokenizer st = new StreamTokenizer(br);
st.nextToken();
n = (int) st.nval;
st.nextToken();
m = (int) st.nval;
map = new char[n][m];
br.readLine();
for (int i = 0; i < n; i++) {
map[i] = br.readLine().toCharArray();
}
for (int i = 0; i < n; i++) {
if (i == 0) {
f1(map[i]);
count += cb + cr;
} else if (i > 0 && i <= n - 2) {
if (last == 1) {
f1(map[i]);
if (cb >= cw) {
last = 2;
flag = 1;
count += cw + cr;
} else {
count += cb + cr;
}
} else if (i == n - 2 && flag == 0) {
f1(map[i]);
count += cw + cr;
} else if (last == 2) {
f1(map[i]);
if (cr >= cb) {
last = 3;
count += cw + cb;
} else {
count += cw + cr;
}
} else if (last == 3) {
f1(map[i]);
count += cw + cb;
}
} else if (i == n - 1) {
f1(map[i]);
count += cw + cb;
}
System.out.println(count + " ***" + last);
}
System.out.println(count);
}
static void f1(char[] arr) {
cw = 0;
cb = 0;
cr = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == 'W')
cw++;
if (arr[i] == 'B')
cb++;
if (arr[i] == 'R')
cr++;
}
}
}