#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int N=200005; int fa[N],id[N],u[N],v[N],l[N],n,m,Num1[N],Num2[N],sum,Ans[N]; int getfa(int u){return fa[u]==u?u:fa[u]=getfa(fa[u]);} int cmp(int a,int b){return l[a]>n>>m; for(int i=1;i<=m;i++) scanf("%d%d%d",&u[i],&v[i],&l[i]),id[i]=i,Ans[i]=0; sort(id+1,id+m+1,cmp); for(int i=1;i<=n;i++) fa[i]=i; sum=n; for(int i=m;i;i--) { Union(u[id[i]],v[id[i]]); if(i==1||l[id[i-1]]!=l[id[i]]) { for(int j=i;j<=m&&l[id[j]]==l[id[i]];j++) Num1[j]=sum; } } for(int i=1;i<=n;i++) fa[i]=i; sum=n; for(int i=1;i<=m;i++) { Union(u[id[i]],v[id[i]]); if(i==m||l[id[i+1]]!=l[id[i]]) { for(int j=i;j&&l[id[j]]==l[id[i]];j--) Num2[j]=sum; } } for(int i=1;i<=n;i++) fa[i]=i; sum=n; for(int i=1;i<=m;i++) if(i==m||l[id[i+1]]!=l[id[i]]) { for(int j=i;j&&l[id[j]]==l[id[i]];j--) Union(u[id[j]],v[id[j]]); int ok=sum-1<=min(sum-Num1[i],n/2-1)+min(sum-Num2[i],n/2-1); sum=n; for(int j=i;j&&l[id[j]]==l[id[i]];j--) fa[u[id[j]]]=u[id[j]],fa[v[id[j]]]=v[id[j]],Ans[id[j]]=ok; } for(int i=1;i<=m;i++) putchar(Ans[i]+'0'); puts(""); } int main() { int n;cin>>n; while(n--) solve(); return 0; }