#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
int ans[maxn], cnt = 0;
queue<int> que[maxn];
int main() {
  int n, all;
  cin >> n;
  all = n;
  for (int i = 1; i <= n; i++) {
    int ai;
    scanf("%d", &ai);
    que[ai].push(i);
  }
  int now = 0;
  while (all) {
    int ff = 0;
    while (que[now].size()) {
      ff = 1;
      ans[cnt++] = que[now].front();
      que[now].pop();
      now++;
      all--;
    }
    if (now >= 3) {
      ff = 1;
      now -= 3;
    }
    if (ff == 0) break;
  }
  if (all)
    puts("Impossible");
  else {
    puts("Possible");
    for (int i = 0; i < cnt; i++) {
      printf("%d%c", ans[i], i == cnt - 1 ? '\n' : ' ');
    }
  }
  return 0;
}
