#include<bits/stdc++.h>
using namespace std;

int dp[4001][16001];
int ax[4001];
int ay[4001];
int tx,ty;

void dfsx(int n,int m){
	if(dp[n][m+8000]) return;
	
	if(n<tx){
		dfsx(n+1,m-ax[n]);
		dfsx(n+1,m+ax[n]);
	}
	
	dp[n][m+8000]=1;
}

void dfsy(int n,int m){
	if(dp[n][m+8000]) return;
	
	if(n<ty){
		dfsy(n+1,m-ay[n]);
		dfsy(n+1,m+ay[n]);
	}
	
	dp[n][m+8000]=1;
}

int main()
{
	string s;
	int x,y;
	cin>>s>>x>>y;
	
	int dir=1;
	
	for(int i=0;i<s.size();i++){
		if(s[i]=='F'){
			if(dir) ax[tx]++; 
			else ay[ty]++;
		}
		else if(s[i]=='T'){
			if(dir) dir=0,tx++;
 			else dir=1,ty++;
		}
	}
	
	if(s[s.size()-1]=='F'){
		if(dir) tx++;
 		else ty++;
	}
	
	dfsx(1,ax[0]);
	bool xx=dp[tx][8000+x];	
	memset(dp,0,sizeof(dp));
    
    dfsy(0,0);
    bool yy=dp[ty][8000+y];
    
    if(yy && xx) cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
    
    return 0;
}