output_description: Print the maximum number of desires that can be satisfied at the same time.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N K
      x_1 y_1 c_1
      x_2 y_2 c_2
      :
      x_N y_N c_N
attempt: #include <bits/stdc++.h>
  //#include <math.h>
  using namespace std;
  
  #define INF 1.1e9
  #define LINF 1.1e18
  #define FOR(i,a,b) for (int i=(a);i<(b);++i)
  #define REP(i,n) FOR(i,0,n)
  #define ALL(v) (v).begin(),(v).end()
  #define pb push_back
  #define pf push_front
  #define fi first
  #define se second
  #define BIT(x,n) bitset<n>(x)
  #define PI 3.14159265358979323846
  
  typedef long long ll;
  typedef pair<int,int> P;
  typedef pair<int,P> PP;
  
  //-----------------------------------------------------------------------------
  
  int n,k,x,y;
  char c;
  int imos[5010][5010];
  
  int calc(int y,int x) {
  	int res=0;
  	if(y>=0&&x>=0) res=imos[min(k*2-1,y)][min(k*2-1,x)];
  	return res;
  }
  
  int sum(int y,int x) {
  	return calc(y,x)-calc(y-k,x)-calc(y,x-k)+calc(y-k,x-k);
  }
  
  int main() {
  	cin.tie(0);
  	ios::sync_with_stdio(false);
  
  	cin>>n>>k;
  	REP(i,n) {
  		cin>>x>>y>>c;
  		if(c=='W') x+=k;
  		int nx=x%(2*k),ny=y%(2*k);
  		imos[ny][nx]++;
  	}
  	REP(i,k*2) REP(j,k*2) imos[i][j]+=calc(i-1,j);
  	REP(i,k*2) REP(j,k*2) imos[i][j]+=calc(i,j-1);
  	/*cout<<endl;
  	REP(i,k*2) {
  		REP(j,k*2) cout<<imos[i][j]<<' ';
  		cout<<endl;
  	}*/
  	int ans=0;
  	REP(i,k*2) {
  		REP(j,k*2) {
  			ans=max(ans,sum(i,j)+sum(i-k,j-k)+sum(i-k,j+k)+sum(i+k,j-k)+sum(i+k,j+k)+sum(i+2*k,j)+sum(i,j+k*2));
  		}
  	}
  	cout<<ans<<endl;
  
  	return 0;
  }
  
problem_description: Statement
  
  AtCoDeer is thinking of painting an infinite two-dimensional grid in a
  _checked pattern of side K_. Here, a checked pattern of side K is a pattern
  where each square is painted black or white so that each connected component
  of each color is a K × K square. Below is an example of a checked pattern of
  side 3:
  
  ![cba927b2484fad94fb5ff7473e9aadef.png](https://img.atcoder.jp/arc089/cba927b2484fad94fb5ff7473e9aadef.png)
  
  AtCoDeer has N desires. The i-th desire is represented by x_i, y_i and c_i. If
  c_i is `B`, it means that he wants to paint the square (x_i,y_i) black; if c_i
  is `W`, he wants to paint the square (x_i,y_i) white. At most how many desires
  can he satisfy at the same time?
samples: [{"input": "4 3\n    0 1 W\n    1 2 W\n    5 3 B\n    5 4 B", "output": "4\n    \n\nHe can satisfy all his desires by painting as shown in the example above.\n\n* * *"}, {"input": "2 1000\n    0 0 B\n    0 1 W", "output": "2\n    \n\n* * *"}, {"input": "6 2\n    1 2 B\n    2 1 W\n    2 2 B\n    1 0 B\n    0 6 W\n    4 5 W", "output": "4"}]