#include <bits/stdc++.h>
using namespace std;
string s;
int l1, dp[101][101][2][2][101];
int rek(int idx, int pos, int daerah, int arah, int sisa) {
  if (idx == l1) {
    if (sisa == 0)
      return pos;
    else
      return 0;
  }
  if (dp[idx][pos][daerah][arah][sisa] == -1) {
    int tmp = 0;
    for (int i = 0; i <= sisa; i++) {
      if (i % 2 == 0) {
        if (s[idx] == 'T') {
          tmp = max(tmp, rek(idx + 1, pos, daerah, (arah + 1) % 2, sisa - i));
        } else {
          if (daerah == arah) {
            tmp = max(tmp, rek(idx + 1, pos + 1, daerah, arah, sisa - i));
          } else {
            if (pos == 0) {
              tmp = max(tmp, rek(idx + 1, 1, (daerah + 1) % 2, arah, sisa - i));
            } else {
              tmp = max(tmp, rek(idx + 1, pos - 1, daerah, arah, sisa - i));
            }
          }
        }
      } else {
        if (s[idx] == 'F') {
          tmp = max(tmp, rek(idx + 1, pos, daerah, (arah + 1) % 2, sisa - i));
        } else {
          if (daerah == arah) {
            tmp = max(tmp, rek(idx + 1, pos + 1, daerah, arah, sisa - i));
          } else {
            if (pos == 0) {
              tmp = max(tmp, rek(idx + 1, 1, (daerah + 1) % 2, arah, sisa - i));
            } else {
              tmp = max(tmp, rek(idx + 1, pos - 1, daerah, arah, sisa - i));
            }
          }
        }
      }
    }
    dp[idx][pos][daerah][arah][sisa] = tmp;
  }
  return dp[idx][pos][daerah][arah][sisa];
}
int main() {
  ios_base ::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int N;
  cin >> s >> N;
  l1 = s.length();
  memset(dp, -1, sizeof dp);
  int ans = rek(0, 0, 0, 0, N);
  cout << ans << "\n";
}
