// inputに入力データ全体が入る
function Main(input) {
	// 1行目がinput[0], 2行目がinput[1], …に入る
  input = input.split("\n")
  tmp0 = input[0].split(" ")
  X = Number(tmp0[0])
  Y = Number(tmp0[1])
  Z = Number(tmp0[2])
  K = Number(tmp0[3])

  A = input[1].split(" ")
  B = input[2].split(" ")
  C = input[3].split(" ")

  var oishisa_list = []
  for(var i=0; i < X; i++){
    for(var j=0; j < Y; j++){
      for(var k=0; k < Z; k++){
        var oishisa = Number(A[i]) + Number(B[j]) + Number(C[k])
        oishisa_list.push(oishisa)
      }
    }
  }

  oishisa_list.sort((a, b) => {return b-a})

  for(var i = 0; (i < K) && (i < oishisa_list.length); i++)
  {
    console.log(oishisa_list[i])
  }
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
// Main("2 2 2 8\n4 6\n1 5\n3 8\n")