#include <bits/stdc++.h>
using namespace std;
vector<vector<int> > vec(212345);
int a[212345], b[212345];
vector<int> adj;
int main() {
  std::ios::sync_with_stdio(false);
  int n, i;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> a[i];
    b[a[i]]++;
    vec[a[i]].push_back(i + 1);
  }
  i = 0;
  int counti = 0;
  while (counti < n) {
    while (i >= 0 && b[i] == 0) {
      i -= 3;
    }
    if (i < 0) {
      cout << "Impossible" << endl;
      return 0;
    }
    b[i]--;
    adj.push_back(vec[i][b[i]]);
    i++;
    counti++;
  }
  cout << "Possible" << endl;
  for (i = 0; i < adj.size(); i++) {
    cout << adj[i] << " ";
  }
  return 0;
}
