#include <bits/stdc++.h>
using namespace std;
const long double PI = acos(-1.0);
long long n, maxl = 2e5;
long long montonic(vector<long long> &b) {
  bool inc = true, dec = true;
  long long n = (long long)b.size();
  for (long long i = 1; i < n; ++i) {
    if (b[i] <= b[i - 1]) {
      inc = false;
    }
    if (b[i] >= b[i - 1]) {
      dec = false;
    }
  }
  if (inc == 1) {
    return 1;
  }
  if (dec == 1) {
    return 0;
  } else
    return -1;
}
void f(vector<long long> &a, vector<long long> &b) {
  string ans = "";
  while (true) {
    if (b == a) {
      break;
    } else {
      vector<long long> c = b;
      reverse(c.begin(), c.end());
      if (c == a) {
        ans += 'R';
        break;
      }
    }
    long long m = montonic(b);
    if (m == -1) {
      cout << "IMPOSSIBLE" << '\n';
      return;
    } else {
      if (m == 0) {
        reverse(b.begin(), b.end());
        ans += 'R';
      } else {
        for (long long i = n - 1; i >= 1; --i) b[i] -= b[i - 1];
        ans += 'P';
      }
    }
  }
  if ((long long)ans.size() > maxl) {
    cout << "BIG" << '\n';
    long long cnt = 0;
    for (long long i = 0; i < (long long)ans.size(); ++i)
      if (ans[i] == 'P') ++cnt;
    cout << cnt << '\n';
  } else {
    cout << "SMALL" << '\n';
    cout << (long long)ans.size() << '\n';
    reverse(ans.begin(), ans.end());
    cout << ans << '\n';
  }
}
void solve() {
  cin >> n;
  if (n == 1) {
    long long a;
    cin >> a;
    long long b;
    cin >> b;
    if (b % a) {
      cout << "IMPOSSIBLE" << '\n';
      return;
    } else {
      long long op = b / a - 1;
      if (op > maxl) {
        cout << "BIG" << '\n';
        cout << op << '\n';
      } else {
        cout << "SMALL" << '\n';
        cout << op << '\n';
      }
    }
  } else if (n == 2) {
    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];
    vector<long long> c = a;
    vector<long long> d = b;
    long long popr = 0;
    sort(c.begin(), c.end());
    sort(d.begin(), d.end());
    long long op = 0;
    while (d[0] != c[0]) {
      if (d[0] == 0) {
        cout << "IMPOSSIBLE" << '\n';
        return;
      }
      op += d[1] / d[0];
      d[1] %= d[0];
      swap(d[0], d[1]);
    }
    if ((d[1] - c[1]) % c[0]) {
      cout << "IMPOSSIBLE" << '\n';
      return;
    } else
      op += (d[1] - c[1]) / c[0];
    if (op > maxl) {
      cout << "BIG" << '\n';
      cout << op << '\n';
    } else
      f(a, b);
  } else {
    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];
    f(a, b);
  }
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
