/**
真心好久没做题了。。。大三了还这么水。。自己都有点看不起自己。。。
最近迷上了java。。。以后打算A完一次后再用javaA一遍。。练一下java的水平。。。
一道简单的模拟题。。。一次A掉没有看别人的代码。。。就不献丑讲原理了。。。
*/
#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
#define Size_it 256
int main()
{
int ncase,i,j;
int dight[Size_it];
int pre[ Size_it * 2];
int d[Size_it];
while(~scanf("%d",&ncase))
{
int num = 0;
while(ncase--)
{
scanf("%d",&num);
memset(dight,0,sizeof(dight));
memset(pre,0,sizeof(pre));
memset(d,0,sizeof(d));
for( i = 1; i <= num;i++)scanf("%d",&dight[i]);
int indexOf = 0;
for(i = 1;i <= num;i++)
{
indexOf += dight[i] - dight[i-1] + 1;
pre[indexOf] =1;
}
int k = 0 , m=0;
for(i = 1;i <= 2*num ; i++)
{
if(pre[i] == 0)
{
k++;
m = k;
}
if(pre[i] == 1)
{
while(d[m] != 0)
{
m--;
}
d[m]=1;
printf("%d",k - m + 1);
if(i !=2*num)printf(" ");
}
}
printf("\n");
}
}
return 0;
}