#include <bits/stdc++.h>
using namespace std;
int ans[200005];
queue<int> q[200005];
int main() {
  int a;
  int i, j, n, m;
  int now, cnt;
  while (scanf("%d", &n) != EOF) {
    for (i = 1; i <= n; i++) {
      scanf("%d", &a);
      q[a].push(i);
    }
    cnt = 0;
    now = 0;
    if (q[0].size() == 0) {
      printf("Impossible\n");
      continue;
    }
    while (true) {
      if (q[now].size() == 0) {
        if (now - 3 < 0) break;
        q[now - 1].pop();
        q[now - 2].pop();
        q[now - 3].pop();
        now -= 3;
      } else {
        ans[cnt++] = q[now].front();
        now++;
      }
    }
    if (cnt == n) {
      printf("Possible\n");
      for (i = 0; i < n - 1; i++) printf("%d ", ans[i]);
      printf("%d\n", ans[n - 1]);
    } else
      printf("Impossible\n");
  }
  return 0;
}
