#include <cstdio>
#include <string>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <cassert>
#include <stack>
#include <queue>
#include <cmath>
#include <map>
#include <set>

using namespace std;

char op[8120];

int ok(vector<int> v,int val)
{
  set<int> s;
  s.insert(0);
  for(int i=0;i<v.size();i++)
  {
    set<int> tp;
    for(int a:s)
    {
      tp.insert(a+v[i]);
      tp.insert(a-v[i]);
    }
    s=tp;
  }
  return s.find(val)!=s.end();
}

int main()
{
  scanf("%s",op);
  int x,y;
  string s=op;
  int i=0;
  scanf("%d%d",&x,&y);
  while (s[i]=='F'&&i<s.size())
    i++;
  x-=i;
  s=s.substr(i);
  vector<int> X,Y;
  int cnt=0;
  for(int i=0;i<s.size();)
  {
    if(s[i]=='T')
    {
      cnt++;
      i++;
    }
    else
    {
      int tp=0;
      while(s[i]=='F'&&i<s.size())
      {
        i++;
        tp++;
      }
      if(cnt&1)
        Y.push_back(tp);
      else
        X.push_back(tp);
    }
  }
  if(ok(X,x)&&ok(Y,y)) cout<<"Yes";
  else cout<<"No";
  return 0;
}
