#![allow(unused)] use proconio::*; use std::collections::*; fn main() { input! { n: usize, m: usize, w: usize, mut a: [usize; n], b: [usize; m], c: [usize; m] } a.sort_by(|a, b| b.cmp(a)); let mut rui = vec![0]; for ai in a { rui.push(rui[rui.len()-1]+ai) } let mut ans = 0; for bit in 0..1< 0 { val_cnt += c[i]; weight_cnt += b[i]; } } if weight_cnt > w { continue; } val_cnt += rui[(w-weight_cnt).min(n)]; ans = ans.max(val_cnt) } println!("{ans}") }