import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
public class Main {
static int n;
static int m;
static int[][] nums;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StreamTokenizer in = new StreamTokenizer(br);
in.nextToken();
n = (int) in.nval;
in.nextToken();
m = (int) in.nval;
nums = new int[n][3];
for (int i = 0; i < n; i++) {
int w = 0;
int b = 0;
int r = 0;
char[] temp = br.readLine().toCharArray();
for (char c : temp) {
if (c == 'W') {
w++;
} else if (c == 'B') {
b++;
} else {
r++;
}
}
nums[i][0] = w;
nums[i][1] = b;
nums[i][2] = r;
}
compute();
br.close();
}
public static void compute() {
int ans = Integer.MAX_VALUE;
for (int i = 1; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
int temp = 0;
for (int l = 0; l < i; l++) {
temp += (m - nums[l][0]);
}
for (int l = i; l < j; l++) {
temp += (m - nums[l][1]);
}
for (int l = j; l < n; l++) {
temp += (m - nums[l][2]);
}
ans = Math.min(temp, ans);
}
}
System.out.println(ans);
}
}