func_code_string: #include <bits/stdc++.h>   #pragma comment(linker,  /stack:200000000 )   #pragma GCC optimize(2)   #pragma G++ optimize(2)   using namespace std;   constexpr long long N = 2e5 + 9;   constexpr long long M = 1e9 + 7;   constexpr long long INF = 0x3f3f3f3f3f3f3f3f;   constexpr long long INF2 = 0xcfcfcfcfcfcfcfcf;   long long n;   long long a[N], b[N];   string ans;   long long p, r;   void print() {     for (long long i = 1; i <= n; i++) cout << b[i] <<    ;     cout << endl;   }   signed fail() {     cout <<  IMPOSSIBLE  << endl;     return 0;   }   bool rcheck() {     for (long long i = 1; i <= n; i++) {       if (a[i] != b[n + 1 - i]) return false;     }     r++;     ans +=  R ;     return true;   }   bool check() {     if (rcheck()) return true;     for (long long i = 1; i <= n; i++) {       if (a[i] != b[i]) return false;     }     return true;   }   signed answer() {     if (p <= 2e5) {       cout <<  SMALL  << endl;       cout << ans.size() << endl;       reverse(ans.begin(), ans.end());       cout << ans << endl;       return 0;     }     cout <<  BIG  << endl;     cout << p << endl;     return 0;   }   signed solve1() {     if (check()) {       return answer();     }     return fail();   }   inline bool inc() {     for (long long i = 1; i < n; i++) {       if (b[i + 1] <= b[i]) return false;     }     return true;   }   bool R() {     if (inc()) return true;     reverse(b + 1, b + 1 + n);     r++;     ans +=  R ;     return inc();   }   inline bool P() {     for (long long i = n; i >= 1; i--) {       b[i] = b[i] - b[i - 1];       if (b[i] < 1) return false;     }     p++;     ans +=  P ;     return true;   }   signed solve2() {     bool rev = false;     if (a[1] > a[2]) swap(a[1], a[2]), r++, rev = true;     while (!check()) {       if (b[1] == b[2]) return fail();       if (b[1] > b[2]) {         swap(b[1], b[2]), r++;         if (p <= 2e5) ans +=  R ;         continue;       }       if (b[1] == b[2]) return fail();       if (a[1] == b[1]) {         if ((b[2] - a[2]) % b[1] == 0 && b[2] > a[2]) {           long long op = (b[2] - a[2]) / b[1];           p += op;           if (p <= 2e5) {             while (op--) ans +=  P ;           }           break;         } else           return fail();       }       long long op = b[2] / b[1];       p += op;       if (p <= 2e5)         while (op--) ans +=  P ;       b[2] = b[2] % b[1];       if (b[2] == 0) return fail();     }     if (rev) ans +=  R ;     return answer();   }   signed solve() {     while (!check()) {       if (!R()) return fail();       if (!P()) return fail();     }     answer();     return 0;   }   signed main() {     ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);     ;     cin >> n;     for (long long i = 1; i <= n; i++) cin >> a[i];     for (long long i = 1; i <= n; i++) cin >> b[i];     if (n == 1) return solve1();     if (n == 2) return solve2();     return solve();   }   