#include <bits/stdc++.h>
using namespace std;
vector<int> a[200100];
int cnt[200100];
vector<int> res;
int main() {
  int n;
  scanf("%d", &n);
  int q;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &q);
    a[q].push_back(i);
  }
  int pos = 0;
  while (true) {
    if (cnt[pos] < a[pos].size()) {
      res.push_back(a[pos][cnt[pos]]);
      cnt[pos]++;
      pos++;
    } else
      pos -= 3;
    if (pos < 0) break;
  }
  if (res.size() != n) {
    puts("Impossible");
  } else {
    puts("Possible");
    for (int i = 0; i < n; i++) {
      printf("%d ", res[i]);
    }
  }
  return 0;
}
