#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-8;
const int mod = 1e9 + 7;
const int N = 1e6 + 10;
const long long INF = 1e18;
long long power(long long x, long long y) {
  long long t = 1;
  while (y > 0) {
    if (y % 2)
      y -= 1, t = t * x % mod;
    else
      y /= 2, x = x * x % mod;
  }
  return t;
}
int a[N], res1[N], res2[N];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long n, i, j, u, v;
  cin >> n;
  long long sum = 0;
  for (i = 0; i < n + 1; ++i) cin >> a[i], sum += a[i];
  int count = 0, index;
  for (i = 0; i < n; ++i) {
    if (a[i] >= 2 && a[i + 1] >= 2) {
      count++;
      index = i + 1;
      break;
    }
  }
  if (count == 0) {
    cout << "perfect" << endl;
    return 0;
  }
  res1[0] = 0;
  res2[0] = 0;
  i = 1, j = 1;
  int idx = 1;
  while (i <= (sum - 1) && j < n + 1) {
    if (j == index) {
      long long t = a[j];
      res1[i] = idx;
      res2[i] = idx;
      i++;
      res1[i] = idx, res2[i] = idx - 1;
      i++;
      long long k;
      for (k = 0; k < t - 2; ++k) res1[i] = idx, res2[i] = idx, i++;
      idx += t;
    } else {
      long long t = a[j];
      long long k;
      for (k = 0; k < t; ++k) res1[i] = idx, res2[i] = idx, i++;
      idx += t;
    }
    j++;
  }
  cout << "ambiguous" << endl;
  for (i = 0; i < sum; ++i) cout << res1[i] << " ";
  cout << endl;
  for (i = 0; i < sum; ++i) cout << res2[i] << " ";
  return 0;
}
