#include <bits/stdc++.h>
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int n, r;
int dep(int a, int b) {
  if (a < b) return dep(b, a);
  return b ? a / b + dep(b, a % b) : 0;
}
int gao(int a, int b) {
  if (a < b) return gao(b, a);
  if (b == 1) return a / b - 1;
  return a / b - 1 + gao(b, a % b);
}
int dfs(int a, int b) {
  if (b == 1) {
    printf("T");
    for (int i = 1; i < a; ++i) {
      printf("B");
    }
    return 0;
  }
  int x = dfs(b, a % b);
  for (int i = 0; i < a / b; ++i) {
    printf(x ? "B" : "T");
  }
  return !x;
}
int main() {
  scanf("%d%d", &n, &r);
  if (n == 1 && r == 1) {
    printf("0\nT\n");
    return 0;
  }
  int ans = n + 1, k;
  for (int i = 0; i < r; ++i) {
    if (gcd(r, i) == 1 && dep(r, i) == n) {
      int tmp = gao(r, i);
      if (tmp < ans) {
        ans = tmp;
        k = i;
      }
    }
  }
  if (ans > n) {
    puts("IMPOSSIBLE");
  } else {
    printf("%d\n", ans - 1);
    dfs(r, k);
    puts("");
  }
}
