#include #define repr(i,a,b) for(int i=a;i=a;i--) // [a, b) #define reprev(i,n) reprrev(i,0,n) #define _GLIBCXX_DEBUG #define int long long using ll = long long; using ull = unsigned long long; template inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; } const ll mod = 1e9+7; void chmod(ll &M){ if(M >= mod) M %= mod; else if(M < 0){ M += (abs(M)/mod + 1)*mod; M %= mod; } } int getl(int i, int N) { return i==0? N-1:i-1; }; int getr(int i, int N) { return i==N-1? 0:i+1; }; long long GCD(long long a, long long b) { if (b == 0) return a; else return GCD(b, a % b); } using namespace std; using Graph = vector>; signed main() { int n, m; cin >> n >> m; string S; cin >> S; int sz = S.length(); int count_wa = 0; int num_wa = 0; rep(i, sz) { if(S[i]=='W') count_wa++; if(S[i]=='A') { if(count_wa > 0) { num_wa++; count_wa--; } } } int count_ac = 0; int num_ac = 0; rep(i, sz) { if(S[i]=='A') count_ac++; if(S[i]=='C') { if(count_ac > 0) { num_ac++; count_ac--; } } } if(num_wa == n && num_ac == m) { cout << "Yes" << endl; } else { cout << "No" << endl; } }