X,Y,Z,K = gets.split.map(&:to_i)
A = gets.split.map(&:to_i).sort.reverse
B = gets.split.map(&:to_i).sort.reverse
C = gets.split.map(&:to_i).sort.reverse

tmp = []
X.times do |i|
  Y.times do |j|
    tmp.push(A[i] + B[j])
  end
end
tmp.sort!
tmp.reverse!
tmp = tmp[0..K]

res = []
tmp.each do |t|
  Z.times do |k|
    res.push(t + C[k])
  end
end
res.sort!
res.reverse!
K.times {|i| puts res[i]}
