#include <bits/stdc++.h>
using namespace std;
const long long N = 1e6 + 10;
const long long mod = 1e9 + 7;
string ans;
long long cnt, tmp;
void add(char s, long long x) {
  tmp = cnt;
  if (s == 'P') cnt += x;
  if (tmp > 2e5) {
    return;
  }
  for (long long i = 1; i <= x; i++) {
    if (tmp > 2e5) break;
    if (s == 'P') tmp++;
    ans = s + ans;
  }
}
bool check(vector<long long> c) {
  for (int i = 1; i < c.size(); i++) {
    if (c[i] <= c[i - 1]) return 0;
  }
  return 1;
}
int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  long long n;
  cin >> n;
  vector<long long> a(n), b(n);
  for (long long i = 0; i < n; i++) cin >> a[i];
  for (long long i = 0; i < n; i++) cin >> b[i];
  if (n == 1) {
    if (a == b) {
      cout << "SMALL\n";
      cout << 0 << "\n";
    } else {
      cout << "IMPOSSIBLE\n";
    }
  } else if (n == 2) {
    while (1) {
      if (a == b) break;
      reverse(b.begin(), b.end());
      if (a == b) {
        add('R', 1);
        break;
      }
      reverse(b.begin(), b.end());
      if (b[0] > b[1]) {
        reverse(b.begin(), b.end());
        add('R', 1);
      }
      long long o = b[1] / b[0];
      if (b[0] == a[0]) {
        if (a[1] <= b[1] && a[1] >= b[0] && ((b[1] - a[1]) % b[0] == 0)) {
          add('P', (b[1] - a[1]) / b[0]);
          break;
        }
      }
      if (b[0] == a[1]) {
        reverse(a.begin(), a.end());
        if (a[1] <= b[1] && a[1] >= b[0] && ((b[1] - a[1]) % b[0] == 0)) {
          add('P', (b[1] - a[1]) / b[0]);
          add('R', 1);
          break;
        }
        reverse(a.begin(), a.end());
      }
      if (b[1] % b[0] == 0) {
        cout << "IMPOSSIBLE\n";
        return 0;
      }
      add('P', o);
      b[1] %= b[0];
    }
    if (cnt <= 2e5) {
      cout << "SMALL\n";
      cout << ans.length() << "\n";
      cout << ans << "\n";
    } else {
      cout << "BIG\n";
      cout << cnt << "\n";
    }
  } else {
    vector<long long> tmp(n);
    while (1) {
      if (a == b) break;
      std::reverse(b.begin(), b.end());
      if (a == b) {
        add('R', 1);
        break;
      }
      std::reverse(b.begin(), b.end());
      if (!is_sorted(b.begin(), b.end())) {
        reverse(b.begin(), b.end());
        if (!check(b)) {
          cout << "IMPOSSIBLE\n";
          return 0;
        }
        add('R', 1);
      }
      tmp[0] = b[0];
      for (long long i = 1; i < n; i++) {
        tmp[i] = b[i] - b[i - 1];
      }
      b = tmp;
      add('P', 1);
    }
    if (cnt <= 2e5) {
      cout << "SMALL\n";
      cout << ans.length() << "\n";
      cout << ans << "\n";
    } else {
      cout << "BIG\n";
      cout << cnt << "\n";
    }
  }
}
