#include int n; int a[50005],b[50005],c[50005]; void add(int x,int cc) { for (int i=x; i<=n; i+=i&(-i)) b[i] += cc; } int sum(int x) { int s = 0; for (int i=x; i>0; i-=i&(-i)) s += b[i]; return s; } int find(int x) { int l=1,r=n,m; while(r>l) { m=(l+r)/2; int y=sum(m); if(y==x) r=m; else if(y>x) r=m-1; else l=m+1; if(m==l) break; } return l; } int main() { int t; int i,j,k; while(scanf("%d",&t)!=EOF) { while(t--) { scanf("%d",&n); for(i=0;i<=n;i++) b[i]=a[i]=c[i]=0; for(i=1;i<=n;i++) { scanf("%d",&a[i]); add(i,1); } int m=n; for(i=n;i>1;i--) { int x=a[i]-a[i-1]; c[i]=find(m-x); m--; add(c[i],-1); } for(i=1;i<=n;i++) if(b[i]==1) break; printf("%d",i); for(i=2;i<=n;i++) printf(" %d",c[i]); puts(""); } } return 0; }