#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>

using namespace std;

int main(){
	
	int N, M;
	
	cin >> N >> M;
	
	string map[100];
	
	int cost[100][3];
	int DP[100][3];
	
	for(int i = 0; i < 100; i++){
		for(int k = 0; k < 3; k++){
			cost[i][k] = 0;
			DP[i][k] = (1 << 29);
		}
	}
	
	DP[0][0] = 0;
	
	for(int i = 0; i < N; i++){
		cin >> map[i];
		for(int j = 0; j < M; j++){
			if(map[i][j] == 'W'){
				cost[i][1]++;
				cost[i][2]++;
			}
			if(map[i][j] == 'B'){
				cost[i][0]++;
				cost[i][2]++;
			}
			if(map[i][j] == 'R'){
				cost[i][0]++;
				cost[i][1]++;
			}
		}
		DP[i + 1][0] = DP[i][0] + cost[i][0];
	}
	
	for(int i = 1; i <= 2; i++){
		for(int j = 2; j <= N; j++){
			DP[j][i] = min(DP[j - 1][i], DP[j - 1][i - 1]) + cost[j - 1][i];
		}
	}
	
	cout << DP[N][2] << endl;
	
	return 0;
}