#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18 + 10, M = 2e5 + 137, MOD = 1e9 + 7;
long long a[M], b[M];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n;
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 1; i <= n; i++) cin >> b[i];
  long long is = 1, sec = 0;
  string ans = "";
  if (n == 1) return cout << (a[1] == b[1] ? "SMALL\n0\n" : "IMPOSSIBLE"), 0;
  if (n == 2) {
    long long c[] = {0, b[1], b[2]};
    while (is) {
      if (a[1] == b[1] && a[2] == b[2]) break;
      if (a[1] == b[2] && a[2] == b[1]) break;
      if (b[1] == b[2]) {
        is = 0;
        break;
      }
      if (b[1] > b[2]) swap(b[1], b[2]);
      if (b[1] == min(a[1], a[2])) {
        if (max(a[1], a[2]) % b[1] == (b[2] % b[1])) {
          sec += (b[2] - max(a[1], a[2])) / b[1];
          break;
        }
      }
      sec += b[2] / b[1];
      b[2] %= b[1];
      if (b[2] == 0) sec--, b[2] = b[1];
    }
    if (!is) return cout << "IMPOSSIBLE", 0;
    if (sec > 200000) return cout << "BIG\n" << sec, 0;
    b[1] = c[1], b[2] = c[2];
    while (is) {
      if (a[1] == b[1] && a[2] == b[2]) break;
      if (a[1] == b[2] && a[2] == b[1]) {
        ans += "R";
        break;
      }
      if (b[1] > b[2]) ans += "R", swap(b[1], b[2]);
      b[2] -= b[1];
      ans += "P";
    }
    reverse(ans.begin(), ans.end());
    cout << "SMALL\n" << ans.size() << "\n" << ans;
    return 0;
  }
  while (is) {
    int ch = 1;
    for (int i = 1; i <= n; i++) {
      if (a[i] != b[i]) {
        ch = 0;
        break;
      }
    }
    if (ch) break;
    ch = 1;
    for (int i = 1; i <= n; i++) {
      if (a[i] != b[n + 1 - i]) {
        ch = 0;
        break;
      }
    }
    if (ch) {
      ans += "R";
      break;
    }
    int no = 1, rev = 1;
    for (int i = 2; i <= n; i++) {
      if (b[i - 1] >= b[i]) {
        no = 0;
        break;
      }
    }
    for (int i = 1; i < n; i++) {
      if (b[i] <= b[i + 1]) {
        rev = 0;
        break;
      }
    }
    if (!no && !rev) {
      is = 0;
      break;
    }
    if (rev) {
      ans += "R";
      reverse(b + 1, b + n + 1);
    }
    for (int i = n; i > 1; i--) b[i] -= b[i - 1];
    ans += "P";
    sec++;
  }
  if (!is) return cout << "IMPOSSIBLE", 0;
  reverse(ans.begin(), ans.end());
  if (sec <= 200000)
    cout << "SMALL\n" << ans.size() << "\n" << ans;
  else
    cout << "BIG\n" << sec;
}
