山山最近在考虑一个五年投资计划。现在有T(1 <= T <= 10) 家投资公司,每一家都经营n(1 <= n <= 1000)种理财产品,并给出了每一种产品目前的价值ai以及五年后的价值bi(1 <= ai, bi<= 1000)。山山可以从这T家投资公司中选取若干家,并在其中投入一定数量的钱。对于一家投资公司,山山可以购买其中的理财产品,同一公司的每一种产品最多购买一次。五年后山山会将所有的产品全部卖出。
当山山选择一家投资公司时,需要缴纳ki(1 <= ki<=1000)的手续费。注意若山山选择了这一家公司,即使山山不购买任何该公司的理财产品,仍然要缴纳手续费。
现在山山手中金币数为m(1 <= m <= 1000),你需要设计一种方案使得山山能够在五年后获得最大数量的金币。
输入格式:
第一行三个正整数T, n, m,分别表示投资公司数量,每家公司提供理财产品数量,以及山山现在的金币数。
下面一行,包含T个整数ki,表示第i家投资公司的手续费。
接下来T行,每行n个数ai,表示现在每一家公司第i个投资产品的价格。
之后T行,每行n个数bi,表示五年后每一家公司第i个投资产品的价格。
输出格式:
输出一行一个整数,表示山山五年后持有的最大金币数。
限制:
空间限制:128MByte
时间限制:1秒
样例:
输入:
2 2 10
1 1
2 3
1 4
1 4
1 6
输出:
11
提示:
山山可以选择两家公司,缴纳2手续费,剩余8金币。山山用3金币购买第一家公司的第二种产品,并用4金币购买第二家公司的第二种产品,剩余1金币。五年后得到4+6金币,共计11金币,为最大值。