#include <bits/stdc++.h>
using namespace std;
vector<int> X, Y;
void fillFirst(int ptr, int x) {
  int par = ptr;
  while (x--) X.push_back(par);
}
void fillWell(int ptr, int x) {
  int ptr1 = ptr, ptr2 = Y.size() - 1;
  int k = ptr1;
  for (int i = 0; i < x; i++) {
    Y.push_back(k);
    k++;
    if (k > ptr2) k = ptr1;
  }
}
int main() {
  int H;
  scanf("%d", &H);
  X.push_back(0);
  Y.push_back(0);
  int ptr1 = 0, ptr2 = 0;
  for (int i = 1; i <= H + 1; i++) {
    int x;
    scanf("%d", &x);
    fillFirst(ptr1, x);
    fillWell(ptr2, x);
    ptr1 = (int)X.size() - x;
    ptr2 = (int)Y.size() - x;
  }
  if (X == Y)
    printf("perfect\n");
  else {
    printf("ambiguous\n");
    for (int i = 1; i < X.size(); i++) printf("%d ", X[i]);
    printf("\n");
    for (int i = 1; i < Y.size(); i++) printf("%d ", Y[i]);
    printf("\n");
  }
  return 0;
}
