#include <bits/stdc++.h>   using namespace std;   inline long long read() {     char ch = getchar();     long long nega = 1;     while (!isdigit(ch)) {       if (ch ==  - ) nega = -1;       ch = getchar();     }     long long ans = 0;     while (isdigit(ch)) {       ans = ans * 10 + ch - 48;       ch = getchar();     }     if (nega == -1) return -ans;     return ans;   }   inline long long min(long long x, long long y, long long z) {     return min(x, min(y, z));   }   inline long long max(long long x, long long y, long long z) {     return max(x, max(y, z));   }   inline long long add(long long x, long long y) {     return x + y >= 998244353 ? x + y - 998244353 : x + y;   }   inline long long add(long long x, long long y, long long z) {     return add(add(x, y), z);   }   inline long long sub(long long x, long long y) {     return x - y < 0 ? x - y + 998244353 : x - y;   }   inline long long mul(long long x, long long y) {     return 1LL * x * y % 998244353;   }   inline long long mul(long long x, long long y, long long z) {     return mul(mul(x, y), z);   }   vector<long long> a, b;   vector<char> ans;   long long n;   void solve1() {     if (a[0] == b[0])       cout <<  SMALL n0 n ;     else       cout <<  IMPOSSIBLE n ;   }   bool rsame(vector<long long> x, vector<long long> y) {     reverse(x.begin(), x.end());     return x == y;   }   void fail() { cout <<  IMPOSSIBLE n , exit(0); }   bool push_back(char s) {     if ((long long)ans.size() <= 200000) {       ans.push_back(s);       return 1;     }     return 0;   }   void solve2() {     long long tot = 0, sum = 0;     while (a != b && !rsame(a, b)) {       if (b[0] > b[1]) swap(b[0], b[1]), tot++, push_back( R );       if (a[0] > a[1] && b[0] == a[1]) {         if (b[0] == 0) fail();         if (b[1] < a[0]) fail();         long long ned = b[1] - a[0];         if (ned % b[0] != 0) fail();         sum += ned / b[0], tot += ned / b[0] + 1;         if (sum <= 200000) {           for (long long i = 1; i <= ned / b[0]; i++) push_back( P );           push_back( R );         }         if (sum <= 200000) {           cout <<  SMALL n ;           reverse(ans.begin(), ans.end());           cout << (long long)ans.size() << endl;           for (auto i : ans) putchar(i);         } else {           cout <<  BIG n ;           cout << sum << endl;         }         exit(0);       }       if (b[0] == a[0]) {         if (b[0] == 0) fail();         if (b[1] < a[1]) fail();         long long ned = b[1] - a[1];         if (ned % b[0] != 0) fail();         sum += ned / b[0], tot += ned / b[0] + 1;         if (sum <= 200000) {           for (long long i = 1; i <= ned / b[0]; i++) push_back( P );           push_back( R );         }         if (sum <= 200000) {           cout <<  SMALL n ;           reverse(ans.begin(), ans.end());           cout << (long long)ans.size() << endl;           for (auto i : ans) putchar(i);         } else {           cout <<  BIG n ;           cout << sum << endl;         }         exit(0);       }       if (b[0] == 0) fail();       tot += b[1] / b[0];       sum += b[1] / b[0];       if (sum <= 200000) {         for (long long i = 1; i <= b[1] / b[0]; i++) push_back( P );       }       b[1] %= b[0];     }     if (a != b) swap(b[0], b[1]), tot++, push_back( R );     if (sum <= 200000) {       cout <<  SMALL n ;       reverse(ans.begin(), ans.end());       cout << (long long)ans.size() << endl;       for (auto i : ans) putchar(i);     } else {       cout <<  BIG n ;       cout << sum << endl;     }     exit(0);   }   bool inc(vector<long long> x) {     for (long long i = 1; i < n; i++) {       if (x[i] < x[i - 1]) return 0;     }     return 1;   }   bool dec(vector<long long> x) {     for (long long i = 1; i < n; i++) {       if (x[i] > x[i - 1]) return 0;     }     return 1;   }   bool alz(vector<long long> x) {     for (long long i = 0; i < n - 1; i++)       if (x[i] != 0) return 0;     return 1;   }   void print(vector<long long> x) {     for (long long i : x) printf( %lld  , i);     cout <<   n ;   }   void solve3() {     long long tot = 0, sum = 0;     while (a != b && !rsame(a, b)) {       if (alz(b)) fail();       if (dec(b)) reverse(b.begin(), b.end()), tot++, push_back( R );       if (!inc(b)) fail();       sum++;       tot++;       push_back( P );       for (long long i = n - 1; i > 0; i--) b[i] -= b[i - 1];     }     if (a != b) reverse(b.begin(), b.end()), tot++, push_back( R );     if (sum <= 200000) {       cout <<  SMALL n ;       cout << ans.size() << endl;       reverse(ans.begin(), ans.end());       for (auto i : ans) putchar(i);     } else {       cout <<  BIG n ;       cout << sum << endl;     }   }   signed main() {     cin >> n;     a.resize(n), b.resize(n);     for (long long i = 0; i < n; i++) a[i] = read();     for (long long i = 0; i < n; i++) b[i] = read();     if (n >= 3)       solve3();     else if (n == 2)       solve2();     else       solve1();     return 0;   }