#2418. 猜数游戏

猜数游戏

题目描述

为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力。

游戏开始前,一头指定的奶牛会在牛棚后面摆N(1<=N<=1,000,000)\red{N(1 <= N<= 1,000,000)}堆干草,每堆有若干捆,并且没有哪两堆中的草一样多。所有草堆排成一条直线,从左到右依次按1..N\red{1..N}编号,每堆中草的捆数在1..1,000,000,000\red{1..1,000,000,000}之间。

然后,游戏开始。另一头参与游戏的奶牛会问那头摆干草的奶牛 Q(1<=Q<=25,000)\red{Q(1 <= Q <= 25,000)}个问题,问题的格式如下: 编号为Ql..Qh(1<=Ql<=Qh<=N)\red{Ql..Qh(1 <= Ql <= Qh <= N)}的草堆中,最小的那堆里有多少捆草?

对于每个问题,摆干草的奶牛回答一个数字A\red{A,}但或许是不想让提问的奶牛那么容易地得到答案,又或许是她自己可能记错每堆中干草的捆数,总之,她的回答不保证是 正确的。

请你帮助提问的奶牛判断一下,摆干草的奶牛的回答是否有自相矛盾之处。

输入格式

1\red{1}行: 2\red{2}个用空格隔开的整数:N\red{N }Q\red{Q}

2..Q+1\red{2..Q+1}行: 每行为3\red{3}个用空格隔开的整数Ql\red{Ql}Qh\red{Qh}A\red{A,}描述了一个问题以及它 对应的回答

输出格式

1\red{1}行:

如果摆干草的奶牛有可能完全正确地回答了这些问题

(也就是说,能 找到一种使得所有回答都合理的摆放干草的方法),输出0\red{0,}

否则输出 1\red{1}1..Q\red{1..Q}中的数,表示这个问题的答案与它之前的那些回答有冲突之处

样例

输入样例

20 4
1 10 7
5 19 7
3 12 8
11 15 12

输出样例

3

提示

注意:如果有冲突出现输出一个数m,\red{m,}使得前M1\red{M-1}个命题不冲突。

输入说明:

编号为1..10\red{1..10}的草堆中,最小的那堆里有7\red{7}捆草,编号为5..19\red{5..19}的草堆中同样

如此;编号为3..12\red{3..12}的草堆中最小的堆里是8\red{8}捆草,11..15\red{11..15}堆中的最小的堆里是12\red{12} 捆。

输出说明:

对于第3\red{3}个问题"312\red{3 12}"的回答"8\red{8}"与前面两个回答冲突。

因为每堆中草的捆数唯一,从前两个回答中我们能推断出,编号为5..10\red{5..10}的干草堆中最小的那堆里有7\red{7}捆干草。

很显然,第3\red{3}个问题的回答与这个推断冲突。