#P1821. Fence

Fence

描述

一个由kk个工人(1K1001 \leq K \leq 100)组成的队伍需要粉刷一面包含NN块栅栏板(编号从1到NN)的栅栏,从左到右。每个工人ii1iK1 \leq i \leq K)应该坐在第SiS_i块栅栏板前面,他只能粉刷一个连续的区间(这意味着区间中的栅栏板应该是连续的)。这个区间必须包含SiS_i块栅栏板。同时,每个工人最多只能粉刷LiL_i块栅栏板,并且每粉刷一块栅栏板他会得到PiP_i元(1Pi100001 \leq P_i \leq 10000)。每块栅栏板只能由一个工人粉刷。所有的SiS_i值应该是不同的。

作为队长,你需要确定每个工人应该粉刷哪个区间,以使得总收入最大化。总收入是指工人个人收入的总和。

输入

输入包括:

第一行包含两个整数NNKK

接下来的KK行,每行包含三个整数LiL_iPiP_iSiS_i,分别表示第ii个工人最多可以粉刷的栅栏板数、每块栅栏板的收入和该工人坐在的栅栏板位置。

输出

输出一个整数,表示总的最大收入。

输入数据1

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

输出数据1

17

提示

解释:

  • 工人1粉刷区间[1, 2];
  • 工人2粉刷区间[3, 4];
  • 工人3粉刷区间[5, 7];
  • 工人4没有粉刷任何栅栏板。

来源
Romania OI 2002