3136: 拯救彩虹岛

时间限制:1000 ms 内存限制:256 MB
上传者:
提交:40 通过:9

题目描述

糟糕!彩虹岛陷入了音乐混乱!

众所周知,$Honey$音乐可以维持世界之心运转,也是彩虹岛的大家赖以生存的基本保障。然而,彩虹岛收到了名为$Hadora$的邪恶组织的侵袭,组成$Honey$音乐的超级音符被扰乱了,彩虹岛的世界之心也变得虚弱,如果这个问题不尽快解决,彩虹岛的世界之心将不能正常运转,彩虹岛的大家也会遭受前所未有的危机。

为了拯救彩虹岛,神秘组织ACM在选出了$N$名音阶战士,并通过彩虹岛的世界之心赋予他们法力,每个战士都会分到法力。希望他们能够重新组成上古大阵$Apolo$,发动大阵的力量重新演奏$Honey$音乐,为了完成大阵,音阶战士之间需要满足$K$个条件。

由于彩虹岛的世界之心正处于虚弱状态,音阶战士们能分到的法力值有限,彩虹岛的人民现在需要你的帮助,世界之心至少需要分配多少法力给战士们才能满足所有条件并完成大阵的布置。

输入格式

输入的第一行是两个整数$N,K(2≤N≤10^5,1≤K≤10^5)$

接下来$K$行,表示满足大阵运转的$K$个条件,每行包含$3$个整数$op, a, b(1≤op≤5,\ 1≤a≤N, \ 1≤b≤N)$

- 如果 $op=1$.表示第 $a$ 个音阶战士分配到的法力值必须和第 $b$ 个音阶战士分到的一样多。
- 如果 $op=2$,表示第 $ a $ 个音阶战士分配到的法力值必须少于第 $b$ 个音阶战士分到的法力值。
- 如果 $op=3$,表示第 $a$ 个音阶战士分配到的法力值必须不少于第 $ b $ 个音阶战士分到的法力值。
- 如果 $op=4$,表示第 $ a$ 个音阶战士分配到的法力值必须多于第 $b$ 个音阶战士分到的法力值。
- 如果 $op=5$,表示第 $ a$ 个音阶战士分配到的法力值必须不多于第 $b$ 个音阶战士分到的法力值。

输出格式

如果无解,输出$-1$。

如果有解,输出两行。

第一行表示世界之心至少要分配给音阶战士们的法力值。

第二行输出一个字符串,由音阶战士们被分配到的法力值拼接组成,如果有多个满足要求的解,要求输出字典序最小的字符串。

输入样例 复制

5 7
1 1 2
2 3 2
4 4 1
3 4 5
5 4 5
2 3 5
4 5 1

输出样例 复制

11
12233

数据范围与提示