#include typedef long long ll; typedef unsigned long long ull; #define FOR(i,a,b) for(int (i)=(a);i<(b);i++) #define REP(i,n) FOR(i,0,n) #define RANGE(vec) (vec).begin(),(vec).end() using namespace std; class RedBlueWhiteBlocks { public: void solve(void) { int Kr,Kb; cin>>Kr>>Kb; string S; cin>>S; int N = S.length(); vector ri; vector bi; // 赤・青のブロックの最大数はそれぞれ 2^20 なんで全探索すればよい // それぞれの色のインデックスを格納しておく REP(i, N) { if (S[i] == 'R') ri.push_back(i); else if (S[i] == 'B') bi.push_back(i); } assert(ri.size()==10); assert(bi.size()==10); vector badr; vector badb; int maxLen = 0; // 取り除くインデクスごとに回る for (int r = 0; r < (1<<10); ++r) for (int b = 0; b < (1<<10); ++b) { string tmp(S); REP(i,10) { if (r & (1<= 0 && tmp[i-Kr] == 'R') || (tmp[i] == 'B' && i-Kb >= 0 && tmp[i-Kb] == 'B') ) { ok = false; break; } } if (ok) maxLen = max(maxLen, n); } cout<solve(); delete obj; return 0; } #endif