#include <bits/stdc++.h>
using namespace std;
typedef long long lint;
const int MAXN = 5005;
const int mod = 1e9 + 7;

vector<int> vx, vy;

bool knap(vector<int> &v, int x){
	if(x < 0) return false;
	if(x > 16004) return false;
	bitset<16005> bs;
	bs[0] = 1;
	for(auto &i : v) bs |= (bs << i);
	return bs[x];
}

int main(){
	bool flg = 0;
	string s;
	int x, y;
	cin >> s;
	cin >> x >> y;
	while(s.size() && s[0] == 'F'){
		x--;
		s = s.substr(1, s.size() - 1);
	}
	while(s.size()){
		s = s.substr(1, s.size() - 1);
		flg ^= 1;
		int cnt = 0;
		while(s.size() && s[0] == 'F'){
			s = s.substr(1, s.size() - 1);
			cnt++;
		}
		if(flg) vy.push_back(cnt);
		else vx.push_back(cnt);
	}
	for(int i=0; i<vx.size(); i++) x += vx[i];
	for(int i=0; i<vy.size(); i++) y += vy[i];
	for(auto &i : vx) i *= 2;
	for(auto &i : vy) i *= 2;
	puts(knap(vx, x) && knap(vy, y) ? "Yes" : "No");
}
