#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int a[N];
vector<int> ans, num[N];
int main() {
  int n;
  while (~scanf("%d%", &n)) {
    ans.clear();
    for (int i = 0; i <= n; i++) num[N].clear();
    int now;
    for (int i = 0; i < n; i++) scanf("%d", &now), num[now].push_back(i + 1);
    now = 0;
    while (now >= 0) {
      if (num[now].size()) {
        ans.push_back(num[now][num[now].size() - 1]);
        num[now].pop_back();
        now++;
      } else
        now -= 3;
    }
    if (ans.size() == n) {
      puts("Possible");
      for (int i = 0; i < ans.size(); i++) printf("%d ", ans[i]);
      puts("");
    } else
      puts("Impossible");
  }
  return 0;
}
