#include <bits/stdc++.h>
using namespace std;
const int inf = (int)1e9;
const int mod = inf + 7;
const double pi = acos(-1.0);
const double eps = 1e-9;
int a[250100], w[250100], n, pos;
vector<int> ans, t[250100];
int gp(int x) {
  int ret = t[x][t[x].size() - 1];
  t[x].pop_back();
  return ret;
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    w[a[i]]++;
    t[a[i]].push_back(i);
  }
  if (w[0] == 0) {
    cout << "Impossible";
    return 0;
  }
  while (w[0] && w[1] && w[2]) {
    w[0]--;
    w[1]--;
    w[2]--;
    ans.push_back(gp(0));
    ans.push_back(gp(1));
    ans.push_back(gp(2));
    n -= 3;
  }
  pos = 3;
  while (n) {
    while (pos - 3 >= 0 && !w[pos]) {
      pos -= 3;
    }
    if (w[pos] == 0) {
      cout << "Impossible";
      return 0;
    }
    n--;
    w[pos]--;
    ans.push_back(gp(pos));
    pos++;
  }
  cerr << endl;
  cout << "Possible" << endl;
  for (int i = 0; i < ans.size(); i++) cout << ans[i] << " ";
  return 0;
}
