一般,计算机传递消息时,会将消息拆分成多个包,每个包是消息的一段,传递时顺序可能是无序的。目标计算机按照顺序接收传过来的包,计算机只能逐条消息输出,即当前消息没有输出完时,不能输出其他消息,所以计算机可以将接收到的包存入缓冲区,等需要输出时再从缓冲区拿出,当然传过来的包也可以不进入缓冲区直接输出。求所需缓冲区的最小大小。
输入文件包含多组数据。
每组数据第一行为消息数 n(n≤5)和包数 m(m≤1000)
接下来 m 行,每行三个整数,依次是所属消息和传递的部分的左右端点。
输入以 n=0,m=0 结束。
对于每组数据,一行一个整数,即最小缓冲区大小。每组数据由一个空行隔开。
3 3
5 5 5
1 1 5
2 1 5
3 1 5
3 5
10 20 5
2 16 20
1 6 10
3 1 5
1 1 5
2 1 15
0 0
3 3
5 5 5
1 1 5
2 1 5
3 1 5
3 5
10 20 5
2 16 20
1 6 10
3 1 5
1 1 5
2 1 15
0 0
## 题目描述
一般,计算机传递消息时,会将消息拆分成多个包,每个包是消息的一段,传递时顺序可能是无序的。目标计算机按照顺序接收传过来的包,**计算机只能逐条消息输出,即当前消息没有输出完时,不能输出其他消息**,所以计算机可以将接收到的包存入缓冲区,等需要输出时再从缓冲区拿出,**当然传过来的包也可以不进入缓冲区直接输出**。求所需缓冲区的最小大小。
## 输入格式
输入文件包含多组数据。
每组数据第一行为消息数 $n$($n \le 5$)和包数 $m$($m \le 1000$)
接下来 $m$ 行,每行三个整数,依次是所属消息和传递的部分的左右端点。
输入以 $n=0,m=0$ 结束。
## 输出格式
对于每组数据,一行一个整数,即最小缓冲区大小。**每组数据由一个空行隔开**。
## 输入输出样例
### 输入
```
3 3
5 5 5
1 1 5
2 1 5
3 1 5
3 5
10 20 5
2 16 20
1 6 10
3 1 5
1 1 5
2 1 15
0 0
```
### 输出
```
3 3
5 5 5
1 1 5
2 1 5
3 1 5
3 5
10 20 5
2 16 20
1 6 10
3 1 5
1 1 5
2 1 15
0 0
```
@chen_zhe