#include <bits/stdc++.h>
using namespace std;
char a[105];
struct st {
  int x;
  int d;
  st(int x = 0, int y = 0) : x(x), d(y) {}
};
st s, s1, s2;
vector<st> dp[105][105];
void ins(vector<st> &v, st s) {
  int i;
  for (i = 0; i < v.size(); i++) {
    if (v[i].x == s.x && v[i].d == s.d) {
      return;
    }
  }
  v.push_back(s);
}
int i, j, k, n, m, x, y, z, t, mx;
int main() {
  cin >> a >> m;
  n = strlen(a);
  dp[0][0].push_back(st(0, 1));
  for (i = 0; i < n; i++) {
    for (j = 0; j <= m; j++) {
      for (k = 0; k < dp[i][j].size(); k++) {
        s = dp[i][j][k];
        if (a[i] == 'F') {
          ins(dp[i + 1][j], st(s.x + s.d, s.d));
        } else {
          ins(dp[i + 1][j], st(s.x, -s.d));
        }
        if (a[i] != 'F') {
          ins(dp[i + 1][j + 1], st(s.x + s.d, s.d));
        } else {
          ins(dp[i + 1][j + 1], st(s.x, -s.d));
        }
      }
    }
  }
  for (j = m; j >= 0; j -= 2) {
    for (i = 0; i < dp[n][j].size(); i++) {
      s = dp[n][j][i];
      if (s.x < 0) {
        s.x = -s.x;
      }
      if (s.x > mx) {
        mx = s.x;
      }
    }
  }
  cout << mx << endl;
}
