#include <bits/stdc++.h>
using namespace std;
const string yes = "Possible";
const string no = "Impossible";
void open(stack<pair<int, int> >& st) {
  while (st.size()) {
    cout << st.top().second + 1 << ' ';
    st.pop();
  }
}
vector<int> p[2 * 1000 * 100 + 5];
int main() {
  int n;
  multimap<int, int> mp;
  cin >> n;
  for (int i = 0; i < n; i++) {
    int a;
    cin >> a;
    p[a + 1].push_back(i);
  }
  if (p[1].empty()) {
    cout << no;
    return 0;
  }
  int cur = 1;
  vector<int> res;
  while (true) {
    while (cur > 0 && p[cur].empty()) cur -= 3;
    if (cur > 0 && !p[cur].empty()) {
      res.push_back(p[cur].back());
      p[cur].pop_back();
      cur++;
    } else
      break;
  }
  if (res.size() != n)
    cout << no;
  else {
    cout << yes << '\n';
    for (int i = 0; i < res.size(); i++) cout << res[i] + 1 << ' ';
  }
  return 0;
}
