#include using namespace std; #define MAXN 200005 #define ll long long #define P 1000000007 int T,n,m,i,j,k,a[MAXN],s[MAXN],r[MAXN],d[MAXN],lc[MAXN],rc[MAXN],t; set h; int main() { scanf("%d",&T); while(T--) { scanf("%d",&n); t=0; for(i=1;i<=n;i++) { scanf("%d",a+i); s[++t]=a[i]; r[t]=i; d[t]=0; while(t>1&&s[t]==s[t-1]) { t--; s[t]--; lc[r[t]]=d[t]; rc[r[t]]=d[t+1]; d[t]=r[t]; r[t]=r[t+1]; } } if(t>1||s[t]) { puts("Impossible"); continue; } puts("Possible"); h.clear(); h.insert(d[1]); for(j=2;!h.empty();j++) { i=*h.begin(); h.erase(h.begin()); printf("%d%c",i,j==n?'\n':' '); if(lc[i])h.insert(lc[i]); if(rc[i])h.insert(rc[i]); } } return 0; }