一个大工程由 N 个子计划组成,编号为 0 ~ N - 1。每个子计划执行需要连续 1 个月,子计划之间可以并行推进。 子计划之间存在先后约束:必须完成 X 子计划,再过 Z 个月,Y 子计划完成。其中 Z 表示从 X 完成时刻到 Y 完成时刻的时间间隔,该间隔已经包含 Y 自身执行所需的 1 个月。 现在给出各子计划之间的约束关系,求完成全部子计划所需要的最少总月数。
输入包含多组测试数据。每组第一行包含两个整数 N,M(N ≤ 1000,M ≤ 10000),表示子计划数量、约束条数。之后 M 行,每行三个整数 X,Y,Z,X、Y 是子计划编号(0 ~ N - 1)。
输出完成所有计划需要的最少月份。
5 2 1 2 1 3 4 1
2
第1个月,子计划0、1 和 3被完成; 第2个月,子计划2 和4被完成; 所以最短完成时间为2个月。