#include <bits/stdc++.h>
using namespace std;
set<pair<int, int> > a[3];
int ans[200009];
int main() {
  int n, curr;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &curr);
    a[curr % 3].insert((pair<int, int>(curr, i)));
  }
  curr = 0;
  for (int i = 0; i < n; i++) {
    set<pair<int, int> >::iterator it =
        a[curr % 3].lower_bound(pair<int, int>(curr, -1));
    pair<int, int> temp;
    if (it != a[curr % 3].end() && it->first == curr) {
      temp = *(it);
      ans[i] = temp.second + 1;
    } else {
      if (it == a[curr % 3].begin()) {
        puts("Impossible");
        return 0;
      } else {
        it--;
        temp = *(it);
        ans[i] = temp.second + 1;
      }
    }
    a[curr % 3].erase(temp);
    curr = temp.first + 1;
  }
  puts("Possible");
  for (int i = 0; i < n; i++) printf("%d ", ans[i]);
  printf("\n");
  return 0;
}
