// しゃくとり法
let NMK: [Int] = readLine()!.split(separator: " ").map { Int($0)! }
let As: [Int] = readLine()!.split(separator: " ").map { Int($0)! }
let Bs: [Int] = readLine()!.split(separator: " ").map { Int($0)! }

var t: Int = Bs.reduce(0, +)   // 本を読むのにかかった時間. 初期値は机Aから0冊, 机BからM冊読むのにかかる時間
var b: Int = NMK[1] // 机Bの本を読んだ冊数. 初期値はM冊
var res: Int = 0

for a in 0...NMK[0] {   // 机Aの本を読んだ冊数
    t += a>0 ? As[a-1] : 0
    
    while b > 0 && t > NMK[2] {   // 机Aからa冊読むとき, 机Bから何冊読めるか?(・・？)
        b -= 1
        t -= Bs[b]
    }
    if t > NMK[2] { break }
    res = max(res, a + b)
}
print(res)  // (๑•ૅㅁ•๑)