给定一张由 n 个节点和 m 条边构成的无向图。节点的编号是 1,2,⋯,n,边的编号是 1,2,⋯,m。
你需要选取若干条边。
用 01 序列 {ai}i=1m 来表示边的选取情况。若编号为 i 的边被选,则 ai=1;否则,ai=0。
你的选边方案必须满足:
对于任意两个 01 序列 {b1,i}i=1m 和 {b2,i}i=1m,称 b1 的字典序大于 b2,当且仅当存在整数 i∈[1,m] 满足以下两个条件:对于任意整数 j∈[1,i),都有 b1,j=b2,j;b1,i=1 而 b2,i=0。容易证明,全体长度为 m 的 01 序列在字典序比较下构成严格全序集。
第一行两个整数 n,m(2≤n≤106,1≤m≤106)。
接下来 m 行中的第 i 行,有两个整数 ui,vi(1≤ui,vi≤n),表示编号为 i 的边连接节点 ui 和 vi。
保证图中无自环,即 ui=vi。
若无解,输出 -1。
否则,输出一个长度为 m 的 01 序列(一行 m 个整数,相邻的数之间用一个空格隔开),表示你的选边方案。
4 4
1 2
2 3
3 4
4 1
1 0 1 0
若不要求使 a 的字典序最大,方案还可以是选取编号为 2 和 4 的边。
3 2
1 2
2 3
-1