#include <bits/stdc++.h>
using namespace std;
long long n, m, i, j, l, r, x, y, res[200000];
set<pair<long long, long long> > st[3];
set<pair<long long, long long> >::iterator i1;
pair<long long, long long> ans;
int main() {
  cin >> n;
  for (i = 0; i < n; ++i) {
    cin >> x;
    st[x % 3].insert(make_pair(x, i + 1));
  }
  long long now = 0;
  for (i = 0; i < n; ++i) {
    long long pos = now % 3;
    i1 = st[pos].lower_bound(make_pair(now, 0));
    if (i1 != st[pos].end() && ((*i1).first) == now)
      res[i] = ((*i1).second), ans = *i1, now = ((*i1).first) + 1;
    else {
      if (st[pos].begin() == i1) {
        cout << "Impossible";
        exit(false);
      }
      --i1, ans = *i1, res[i] = (*i1).second, now = (*i1).first + 1;
    }
    st[pos].erase(ans);
  }
  cout << "Possible\n";
  for (i = 0; i < n; ++i) cout << res[i] << " ";
  return 0;
}
