#include <bits/stdc++.h>
using namespace std;
const long long int N1 = 1000010;
const long long int N2 = 2000010;
const long long int mod1 = 1e2 + 7;
const long long int mod2 = 1e9 + 7;
const int N = 1e6 + 6;
vector<int> vec[N];
int res[N];
int main() {
  int n;
  cin >> n;
  ;
  for (int i = 1; i <= n; i++) {
    int x;
    cin >> x;
    ;
    vec[x].push_back(i);
  }
  int cur = 0;
  for (int i = 1; i <= n; i++) {
    if (!vec[cur].empty()) {
      int tmp = vec[cur].back();
      vec[cur].pop_back();
      ++cur;
      res[i] = tmp;
    } else if (cur >= 3)
      cur -= 3, i--;
    else {
      cout << "Impossible\n";
      return 0;
    }
  }
  cout << "Possible\n";
  for (int i = 1; i <= n; i++) {
    if (i > 1) cout << " ";
    cout << res[i];
  }
  cout << "\n";
  return 0;
}
