#まずそれぞれ大きい順にならべる
x,y,z,k = gets.split.map(&:to_i)

a = gets.split.map(&:to_i)
b = gets.split.map(&:to_i)
c = gets.split.map(&:to_i)

ab = []
for i in a
  for j in b
    ab << i + j
  end
end

ab.sort!
ab.reverse!

abc = []
0.upto(([ab.length, k].min - 1)) do |i|
  for j in c
    abc << ab[i] + j
  end
end

abc.sort!
abc.reverse!

puts abc[0...k]

