种树
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

某条街被划为 n 条路段,这 n 条路段依次编号为。每个路段最多可以种一棵树。现在居民们给出了 h 组建议,每组建议包含三个整数 b,e,t,表示居民希望在路段 b 到 e 之间至少要种t棵树。这些建议所给路段的区间可以交叉。请问:如果要满足所有居民的建议,至少要种多少棵树。

输入描述:

第一行为n,表示路段数。
第二行为h,表示建议数。
下面 h 行描述一条建议:b,e,t,用一个空格分隔。

输出描述:

输出只有一个数,为满足所有居民的建议,所需要种树的最少数量。
示例1

输入

复制
9
4
1 4 2
4 6 2
8 9 2
3 5 2

输出

复制
5

备注:

 的数据满足   ,  ; 
 的数据满足 ,   ,  ,