#include using namespace std; const int inf=1000000000; struct Node { int add,mx; } a[2][264264]; int t,n,m,i,j,k,x,cur,w[50500],st[50500],r[50500]; vector g[50500]; char s[5]; void init(int i, int L, int R, int z) { a[z][i].add=0; a[z][i].mx=0; if (L==R) return; int h=(L+R)/2; init(i*2,L,h,z); init(i*2+1,h+1,R,z); } void add(int i, int L, int R, int l, int r, int z) { if (L==l && R==r) { a[z][i].add++; a[z][i].mx++; return; } int h=(L+R)/2; if (l<=h) add(i*2,L,h,l,min(r,h),z); if (r>h) add(i*2+1,h+1,R,max(l,h+1),r,z); a[z][i].mx=max(a[z][i*2].mx,a[z][i*2+1].mx)+a[z][i].add; } void setv(int i, int L, int R, int x, int v, int z) { if (L==R) { a[z][i].add=v; a[z][i].mx=v; return; } int h=(L+R)/2; if (x<=h) setv(i*2,L,h,x,v,z); else setv(i*2+1,h+1,R,x,v,z); a[z][i].mx=max(a[z][i*2].mx,a[z][i*2+1].mx)+a[z][i].add; } int main() { scanf("%d",&t); while (t--) { scanf("%d%d",&n,&m); for (i=1; i<=n; i++) g[i].clear(); for (i=0; i0; i--) r[i]=min(r[i+1],r[i]); for (i=1; i<=m; i++) printf("%d%c",(r[i]==inf)?-1:r[i],(i==m)?'\n':' '); } return 0; }