CSL 的训练计划
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

众所周知,CSL 是一个负责的集训队队长。为了让集训队的学弟们训练更加饱和,他根据每个人的能力,提出了 m 个题数要求。假如 CSL 认为 y_ix_i 强,那么如果 x_i 做了 a 题,那 CSL 会要求 y_i 需要做至少 ,其中 r_i 是已知的常数。CSL 现在一共有 s 道题目可以分给大家,因为 CSL 马上就要考OS了,所以他不想再出其他题了,请问正整数 k 最大是多少。

输入描述:

第一行有三个整数 n, m, s,分别表示集训队的学弟数量,CSL 的题数要求和 CSL 的题目数量。

接下来 m 行,每行三个整数 x_i, y_i, r_i,含义题目描述中所述。






输出描述:

在一行输出一个整数表示 k 可取的最大值。特别地,如果题目不够分则输出 0;为无穷大输出 -1。
示例1

输入

复制
4 5 19
1 3 0
3 4 4
1 4 2
1 3 2
2 4 1

输出

复制
2
示例2

输入

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

输出

复制
0

备注:

强度是具有传递性的,如果 x 比 y 强且 y 比 z 强,那么 CSL 不会认为 z 比 x 强。

输入数据量较大,建议使用高效的输入输出方式。例如:在 C++ 中使用 scanf/printf 代替 cin/cout;在 Java 中使用 BufferedReader/PrintWriter 代替 Scanner/System.out。