别笑,你来了也过不了第二关
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}你正在参加一款闯关游戏。游戏一共有 n 个关卡,每个关卡有 m 项属性要求。你手里有 x 点属性点。
\hspace{15pt}在游戏开始前,你可以在 m 项属性间只分配一次x 点属性点。分配后,属性值无法改变。
\hspace{15pt}闯关按顺序进行:第 1 关、第 2 关、……。若某一关无法满足要求,则无法继续后续关卡。对于第 i 关,若对每一项属性 j 都满足你分配的点数 \geq a_{i, j},则可以通过该关卡。
\hspace{15pt}请计算:从第 1 关开始,最多可以连续通过多少关。

输入描述:

\hspace{15pt}第一行输入三个整数 n,m,x \left(1 \leq n, m,n \times m \leq 4 \times 10^5;\,1 \leq x \leq 10^{12} \right)
\hspace{15pt}此后 n 行,第 i 行输入 m 个整数 a_{i,1}, a_{i,2}, \dots, a_{i,m} \left(0 \leq a_{i,j} \leq 10^9\right) 表示通过第 i 个关卡在第 j 项属性上的最低要求。

输出描述:

\hspace{15pt}输出一个整数,表示最多可以通过的关卡数量。
示例1

输入

复制
2 4 7
1 2 3 1
2 2 2 2

输出

复制
1

说明

\hspace{23pt}\bullet\,1 关所需属性和为 7,可行;
\hspace{23pt}\bullet\,无论如何分配属性点,都无法通过第二关。
示例2

输入

复制
3 3 10
3 3 2
4 0 2
4 4 4

输出

复制
2