#include <bits/stdc++.h>
using std::cin;
using std::cout;
using std::endl;
using std::string;
const int INF = 2e9 + 999;
const long long ll_inf = 1e18 + 1337;
int h, t, two_row, cnt = 0;
int sum = 0, sum2 = 0;
std::vector<int> a;
bool flag1 = false, flag2 = false;
int main() {
  std::ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> h;
  for (int i = 0; i < h + 1; ++i) {
    cin >> t;
    if (t > 1) {
      if (flag1 == true) {
        two_row = i;
        flag2 = true;
      }
      flag1 = true;
    } else
      flag1 = false;
    sum += t;
    a.push_back(t);
  }
  if (!flag2) {
    cout << "perfect" << endl;
    return 0;
  }
  cout << "ambiguous" << endl;
  for (int i = 0; i < two_row; ++i) {
    sum2 += a[i];
  }
  int m = 0, k = 0;
  while (m < sum) {
    for (int i = 0; i < a[k]; ++i) cout << m << " ";
    m += a[k++];
  }
  cout << endl;
  m = 0;
  k = 0;
  while (m < sum2) {
    for (int i = 0; i < a[k]; ++i) cout << m << " ";
    m += a[k++];
  }
  m = sum2, k = two_row;
  cout << sum2 - 1 << " ";
  a[two_row]--;
  while (m < sum) {
    for (int i = 0; i < a[k]; ++i) cout << m << " ";
    if (k == two_row) m++;
    m += a[k++];
  }
  cout << endl;
  return 0;
}
