function MainD(input) {
	input = input.split("\n");
	var xyzk = input[0].split(" ");
	var x = parseInt(xyzk[0])
	var y = parseInt(xyzk[1]);
	var z = parseInt(xyzk[2]);
	var k = parseInt(xyzk[3]);

	function compare(a,b){
		return b - a;
	}
  var ax = input[1].split(" ").sort(compare);
	var by = input[2].split(" ").sort(compare);
	var cz = input[3].split(" ").sort(compare);

  var arr = [];

	//まずはbcの上位k件をサーチ
	for(var i = 0; i < y; i++){
		var cRem = Math.min(Math.floor(k / i),z);
		if(cRem){
			for(var j = 0; j < cRem; j++){
				arr.push(parseInt(by[i]) + parseInt(cz[j]));
			}
		}
	}
	arr = arr.sort(compare).slice(0,k);
	console.log(arr)
	var newArr = [];

	//次にaとbcで組み合わせ
	for(var i = 0; i < x; i++){
		var cRem = Math.min(Math.floor(k / i),arr.length);
		if(cRem){
			for(var j = 0; j < cRem; j++){
				newArr.push(parseInt(ax[i]) + parseInt(arr[j]));
			}
		}
	}
	newArr = newArr.sort(compare).slice(0,k);
	for(var i in newArr){
		console.log("%d",newArr[i]);
	}
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
MainD(require("fs").readFileSync("/dev/stdin", "utf8"));
