#include <bits/stdc++.h>
using namespace std;
int n, r, ans;
vector<char> cs;
int Doit(int a, int b, int ln, char last) {
  if (a == 1 && b == 1 && ln == n - 1) return last == 'T';
  if (ln >= n) return n + 1;
  if (a < b) {
    int z = (b - 1) / a;
    return Doit(a, b - a * z, ln + z, 'B') + z - 1;
  } else if (a > b) {
    int z = (a - 1) / b;
    return Doit(a - b * z, b, ln + z, 'T') + z - 1;
  }
  return n + 1;
}
void DoitAns(int a, int b) {
  if (a == 1 && b == 1) {
    cs.push_back('T');
    return;
  }
  if (a < b) {
    int z = (b - 1) / a;
    for (int i = 0; i < z; i++) cs.push_back('B');
    DoitAns(a, b - a * z);
  } else if (a > b) {
    int z = (a - 1) / b;
    for (int i = 0; i < z; i++) cs.push_back('T');
    DoitAns(a - b * z, b);
  }
}
int main() {
  cin >> n >> r;
  ans = n + 1;
  if (n == r && n == 1) {
    cout << 0 << endl;
    cout << "T" << endl;
    return 0;
  }
  int vr, vt;
  for (int r1 = 1; r1 < r; r1++) {
    int vs = Doit(r1, r, 0, 'B');
    if (vs < ans) {
      ans = vs;
      vr = r1;
      vt = 1;
    }
    vs = Doit(r, r1, 0, 'T');
    if (vs < ans) {
      ans = vs;
      vr = r1;
      vt = 2;
    }
  }
  if (ans > n) {
    cout << "IMPOSSIBLE" << endl;
  } else {
    cout << ans << endl;
    cs.clear();
    if (vt == 1)
      DoitAns(vr, r);
    else
      DoitAns(r, vr);
    for (int i = cs.size() - 1; i >= 0; i--) cout << cs[i];
    cout << endl;
  }
  return 0;
}
