异色边2
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

 夏天遇见的一切,都是属于浪漫的刚刚好

Capps 有一个 n 个点 n 条边的联通图,标号均从 1n,Capps 认为“刚刚好”最为美好,所以Capps希望将图上的每个点都染上一个颜色(红色或蓝色),使得图上的异色边恰好 k 条。

如果不存在染色方案,输出 -1,否则,输出染色方案,如果存在多种染色方案,输出任意一种均可

异色边:一条边所连接的两个端点颜色不同。

输入描述:

本题有多个样例,第一行一个样例数 T (1\le T \le 10^5)

对于每个样例:

第一行两个整数 n,k (3\le n \le 3\times 10^5, 0\le k \le n) ,表示图上的点/边数以及异色边数。

接下来 n 行,第 i 行两个整数 u_i,v_i (1\le u_i, v_i \le n, \ u_i \neq v_i) 表示第 i 条边连接 u_iv_i 点。

保证输入的图连通且没有重边

对于所有样例保证 \sum n \le 3\times 10^5

输出描述:

对于每个样例:如果存在染色方案,输出一行一个长度为 n01字符串 ss_i=0 表示 i 点染为蓝色,s_i=1 表示 i 点染为红色。如果不存在染色方案,输出 -1。共输出 T 行。
示例1

输入

复制
3
5 4
1 5
2 1
3 4
2 5
4 1
3 1
1 3
3 2
2 1
6 4
5 4
1 2
3 4
6 2
2 3
1 4

输出

复制
10100
-1
100011

说明

对于第一个样例,输出样例里给出的一个可行的染色方案为: