#include <bits/stdc++.h>
using namespace std;
int main() {
  map<int, vector<int> > m;
  vector<int> v;
  int n = 0;
  int p = 0;
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    int t = 0;
    scanf("%d", &t);
    m[t].push_back(i + 1);
  }
  while (p > -1) {
    while (p > -1 && (m.find(p) == m.end() || 0 == m[p].size())) {
      p -= 3;
    }
    if (p < 0) {
      break;
    }
    v.push_back(m[p].back());
    m[p].pop_back();
    p++;
  }
  for (std::map<int, vector<int> >::iterator i = m.begin(); i != m.end(); ++i) {
    if (i->second.size() > 0) {
      puts("Impossible");
      return 0;
    }
  }
  puts("Possible");
  for (int i = 0; i < n; ++i) {
    if (i > 0) {
      printf(" ");
    }
    printf("%d", v[i]);
  }
  return 0;
}
