#include <bits/stdc++.h>
using namespace std;
const int maxn = 2 * 100005;
int ans[maxn + 5];
vector<int> vt[maxn];
int main() {
  int n, i, x;
  while (scanf("%d", &n) != EOF) {
    for (i = 1; i <= n; i++) {
      scanf("%d", &x);
      vt[x].push_back(i);
    }
    int cnt = 0;
    int flag = 1;
    x = 0;
    for (i = 1; i <= n; i++) {
      while (x >= 0 && vt[x].size() == 0) {
        x -= 3;
      }
      if (x < 0) {
        flag = 0;
        break;
      }
      ans[cnt++] = vt[x].back();
      vt[x++].pop_back();
    }
    if (!flag)
      printf("Impossible\n");
    else {
      printf("Possible\n");
      for (i = 0; i < cnt; i++) {
        if (i == 0)
          printf("%d", ans[i]);
        else
          printf(" %d", ans[i]);
      }
      printf("\n");
    }
  }
  return 0;
}
