func_code_string: #include <bits/stdc++.h>   using namespace std;   long long int pow_mod(long long int a, long long int b) {     long long int res = 1;     while (b != 0) {       if (b & 1) {         res = (res * a) % 1000000007;       }       a = (a * a) % 1000000007;       b /= 2;     }     return res;   }   void solve() {     long long int h;     cin >> h;     long long int a[h + 1];     for (long long int i = 0; i < h + 1; i++) cin >> a[i];     bool f = true;     for (long long int i = 1; i < h + 1; i++) {       if (a[i] > 1 && a[i - 1] > 1) {         f = false;         break;       }     }     if (f)       cout <<  perfect n ;     else {       cout <<  ambiguous n ;       long long int p1[h + 1];       long long int p2[h + 1];       long long int sz = 0;       bool f = true;       long long int capture = -1;       for (long long int i = 0; i < h + 1; i++) {         for (long long int j = 0; j < a[i]; j++) {           p1[i] = sz;           cout << sz <<    ;         }         if (i > 0 && a[i] > 1 && a[i - 1] > 1) capture = i;         sz += a[i];       }       cout << endl;       for (long long int i = 0; i < h + 1; i++) {         if (i == capture) cout << (p1[i] - 1) <<    ;         for (long long int j = 0; j < a[i]; j++) {           if (j == 0 && capture == i) continue;           cout << p1[i] <<    ;         }       }       cout << endl;     }   }   int32_t main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     long long int t;     t = 1;     while (t--) solve();     return 0;   }   