#44022. 创造
创造
暂无测试数据。
Bero 国的语言学家 Breo 决定创造一门新的语言。Breo 已经为这种语言设计了 $n$ 种字母($1,\ldots,n$),并用这些字母创造了 $m$ 个单词,每个单词由若干个字母组成。对于每种字母 $c=1,\ldots,n$,记 $s_c$ 和 $t_c$ 分别表示以 $c$ 开头的和以 $c$ 结尾的单词的个数。他发现,许多字母的 $s_c$ 与 $t_c$ 差别太大,他认为这是一种不平衡的表现。因此,他决定将某些单词前后翻转(即将 $x_1x_2\cdots x_l$ 变成 $x_lx_{l-1}\cdots x_1$),使得翻转后 $\max_{c=1}^n|s_c-t_c|$ 最小,请你输出这个最小值并给出一种可能的方案。
输入格式
第一行,两个正整数 $n,m$。
接下来 $m$ 行,每行第一个数 $l_i$ 表示第 $i$ 个单词由 $l_i$ 个字母组成,接下来 $l_i$ 个正整数按从前到后的顺序输入第 $i$ 个单词的字母。
保证任意两个单词不管是否翻转都互不相同。
输出格式
第一行,一个整数表示答案。
第二行,一个长为 $m$ 的 01
串表示方案,其中第 $i$ 位为 1
表示翻转第 $i$ 个单词。
注意:有多种可能的方案,输出任意一种均可。如果输出的方案错误或者输出格式错误,即使答案正确,你也不能得到该测试点的分数。
数据规模与约定
对于前 $20\%$ 的数据,$n\le 10$,$m\le 20$。
对于前 $60\%$ 的数据,$n\le 1000$,$m\le 2000$。
对于 $100\%$ 的数据,$1\le n\le 100000$,$0\le m\le 200000$,$2\le l_i\le 4$。
3 3
3 1 1 2
3 2 2 3
3 1 3 3
0
001
5 3
3 1 1 2
3 1 2 3
3 4 3 5
1
100