#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;
}
