#include<bits/stdc++.h>
using namespace std;
struct node{
int num,poi,cnt;
}b[10001];
int t,n;
void numsot(int len){
for(int i=len;i>=1;i--)
for(int j=1;j<=i-1;j++)
if(b[j].num>b[j+1].num)
swap(b[j],b[j+1]);
}
void poisot(int len){
for(int i=len;i>=1;i--)
for(int j=1;j<=i-1;j++)
if(b[j].poi>b[j+1].poi)
swap(b[j],b[j+1]);
}
void lisan(){
for(int i=1;i<=n;i++) b[i].num=i;
poisot(n);
int cur=1;
int tmp=b[1].poi;
for(int i=1;i<=n;i++){
if(tmp!=b[i].poi) cur++,tmp=b[i].poi;
b[i].cnt=cur;
}
numsot(n);
}
int main(){
cin>>t;
for(int i=1;i<=t;i++){
cin>>n;
for(int j=1;j<=n;j++) cin>>b[i].poi;
lisan();
for(int j=1;j<=n;j++) printf("%d ",b[i].cnt);
printf("\n");
}
}