#include <bits/stdc++.h>
using namespace std;
const int size = 200000;
vector<int> ve[size + 10], res;
int main() {
  int n, x, cnt;
  bool flag;
  while (cin >> n) {
    for (int i = 0; i <= n; ++i) {
      ve[i].clear();
    }
    res.clear();
    for (int i = 1; i <= n; ++i) {
      cin >> x;
      ve[x].push_back(i);
    }
    cnt = 0;
    flag = true;
    for (int i = 1; i <= n; ++i) {
      while (ve[cnt].empty() && cnt >= 3) {
        cnt -= 3;
      }
      if (ve[cnt].empty()) {
        flag = false;
        break;
      }
      res.push_back(ve[cnt].back());
      ve[cnt].pop_back();
      ++cnt;
    }
    if (flag) {
      cout << "Possible" << endl;
      for (auto x : res) {
        cout << x << " ";
      }
      cout << endl;
    } else {
      cout << "Impossible" << endl;
    }
  }
  return 0;
}
