import java.io._
import java.util.StringTokenizer
import scala.util.control.Breaks.{breakable,break}

object Main extends App {
  val in = new InputReader(System.in)
  val pw = new PrintWriter(System.out)

  val s = in.next()
  val _x, y = in.next().toInt
  val N = s.length
  var x = _x

  var dir = 0
  var sayuu: List[Int] = Nil
  var updown: List[Int] = Nil

  def calc(com: Char, num: Int): Unit = {
    com match {
      case 'F' =>
        if(dir == 0)
          sayuu = num :: sayuu
        else
          updown = num :: updown
      case 'T' =>
        if(num % 2 == 1)
          dir += 90
        dir %= 180

    }
  }

  var ind = 0
  ////
  breakable {
    while(ind < N) {
      if(s(ind) == 'F') {
        ind += 1
      }
      else
        break
    }
  }

  x -= ind

  while(ind < N) {
    val now = s(ind)
    var r = ind + 1

    breakable {
      while(true) {
        if(r == N || now != s(r)) {
          calc(now, r-ind)
          ind = r
          break
        }
        else {
          r += 1
        }
      }
    }
  }

  var setlr: Set[Int] = Set(0)
  for(e <- sayuu) {
    var now = Set()

    for(e2 <- setlr) {
      now = now + (e2 + e) + (e2 - e)
    }

    setlr = now
  }

  var setud: Set[Int] = Set(0)
  for(e <- updown) {
    var now = Set()

    for(e2 <- setud) {
      now = now + (e2 + e) + (e2 - e)
    }

    setud = now
  }


  if(setlr.contains(x) && setud.contains(y))
    println("Yes")
  else
    println("No")
}


class InputReader(stream: InputStream) {
  private val reader = new BufferedReader(new InputStreamReader(stream))
  private var tokenizer: StringTokenizer = new StringTokenizer(reader.readLine())
  def next(): String = {
    while (!tokenizer.hasMoreTokens()) {
      tokenizer = new StringTokenizer(reader.readLine())
    }
    tokenizer.nextToken()
  }
}
