#CF915E. Physical Education Lessons

Physical Education Lessons

markdown

E. 体育课

时间限制:每个测试点 11
内存限制:每个测试点 256256 MB
输入:标准输入
输出:标准输出

今年 Alex 中学毕业,成为了 Berland 国立大学的一名大一新生。令他十分惊讶的是,尽管他学的是编程,却仍然要上体育课。学期很快就要结束了,但不幸的是,Alex 至今一节课都没上过!

由于 Alex 不想被开除,他想知道学期结束前还剩多少个工作日,这样他就可以在这些天去上体育课。然而,在 BSU,计算工作日数量是一件复杂的事情:

学期结束前还有 nn 天(编号从 11nn),最初所有天都是工作日。接着,学校工作人员依次发布 qq 条指令,每条指令由三个数字 llrrkk 描述:

  • 如果 k=1k = 1,那么从第 ll 天到第 rr 天(包含两端)全部变为非工作日。即使其中某些天之前被之前的指令设为工作日,这些天仍然变为非工作日;
  • 如果 k=2k = 2,那么从第 ll 天到第 rr 天(包含两端)全部变为工作日。即使其中某些天之前被之前的指令设为非工作日,这些天仍然变为工作日。

请帮助 Alex 在每条指令之后,确定剩余的工作日数量。

输入

第一行包含一个整数 nn,第二行包含一个整数 qq1n1091 \le n \le 10^91q31051 \le q \le 3 \cdot 10^5)——分别表示学期结束前剩余的天数和指令的数量。

接下来 qq 行,第 ii 行包含三个整数 lil_irir_ikik_i,表示第 ii 条指令(1lirin1 \le l_i \le r_i \le n1ki21 \le k_i \le 2)。

输出

输出 qq 个整数。第 ii 个整数应等于前 ii 条指令发布后,学期结束前剩余的工作日数量。

样例

输入

4
6
1 2 1
3 4 1
2 3 2
1 3 2
2 4 1
1 4 2

输出

2
0
2
3
1
4