X, Y, Z, K = gets.split.map(&:to_i)
As = gets.split.map(&:to_i)
Bs = gets.split.map(&:to_i)
Cs = gets.split.map(&:to_i)
xy_array = []

X.times{|x|
    Y.times{|y|
        xy_array.push(As[x] + Bs[y])
    }
}
xy_array.sort!.reverse!
xy_cut = xy_array[0...K]

xyz_array = []
Z.times{|z|
    xy_cut.size.times{|k|
        xyz_array.push(Cs[z] + xy_cut[k])
    }
}
xyz_array.sort!.reverse!
xyz_cut = xyz_array[0...K]

puts xyz_cut

