#include <bits/stdc++.h>
using namespace std;
const int maxn = 100055;
int n, a[maxn];
vector<int> ans;
int main() {
  scanf("%d", &n);
  for (int i = 0; i < (n + 1); ++i) scanf("%d", &a[i]);
  bool ok = 1;
  int pos;
  for (int i = 1; i < (n); ++i)
    if (a[i] > 1 && a[i + 1] > 1) {
      pos = i;
      ok = 0;
      break;
    }
  if (ok) {
    cout << "perfect" << endl;
    return 0;
  }
  int cnt = 1;
  for (int i = 0; i < (n + 1); ++i) {
    if (i == 0)
      ans.push_back(0);
    else {
      for (int j = 0; j < (a[i]); ++j) ans.push_back(cnt);
      cnt += a[i];
    }
  }
  cout << "ambiguous" << endl;
  for (int i = 0; i < (ans.size()); ++i)
    printf("%d%c", ans[i], ans.size() - 1 == i ? '\n' : ' ');
  ans.clear();
  cnt = 1;
  for (int i = 0; i < (n + 1); ++i) {
    if (i == 0)
      ans.push_back(0);
    else {
      if (i - 1 == pos) {
        for (int j = 0; j < (a[i] - 1); ++j) ans.push_back(cnt);
        ans.push_back(cnt - 1);
      } else {
        for (int j = 0; j < (a[i]); ++j) ans.push_back(cnt);
      }
      cnt += a[i];
    }
  }
  for (int i = 0; i < (ans.size()); ++i)
    printf("%d%c", ans[i], ans.size() - 1 == i ? '\n' : ' ');
  return 0;
}
