#include <bits/stdc++.h>
using namespace std;
inline bool equal(double _x, double _y) {
  return _x > _y - 1e-9 && _x < _y + 1e-9;
}
map<int, int> mp;
map<int, vector<int> > p;
vector<int> v;
int main() {
  int n, t, cur = 0;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &t);
    mp[t]++;
    p[t].push_back(i);
  }
  for (int i = 0; i < n; i++, cur++) {
    while (mp[cur] == 0 && cur > 2) cur -= 3;
    if (mp[cur] == 0) break;
    mp[cur]--;
    v.push_back(p[cur].back());
    p[cur].pop_back();
  }
  if ((int)v.size() == n) {
    puts("Possible");
    for (auto i : v) printf("%d ", i);
    puts("");
  } else
    puts("Impossible");
}
