using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static string InputPattern = "InputX";

    static List<string> GetInputList()
    {
        var WillReturn = new List<string>();

        if (InputPattern == "Input1") {
            WillReturn.Add("2 2 2 8");
            WillReturn.Add("4 6");
            WillReturn.Add("1 5");
            WillReturn.Add("3 8");
            //19
            //17
            //15
            //14
            //13
            //12
            //10
            //8
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("3 3 3 5");
            WillReturn.Add("1 10 100");
            WillReturn.Add("2 20 200");
            WillReturn.Add("1 10 100");
            //400
            //310
            //310
            //301
            //301
        }
        else if (InputPattern == "Input3") {
            WillReturn.Add("10 10 10 20");
            WillReturn.Add("7467038376 5724769290 292794712 2843504496 3381970101 8402252870 249131806 6310293640 6690322794 6082257488");
            WillReturn.Add("1873977926 2576529623 1144842195 1379118507 6003234687 4925540914 3902539811 3326692703 484657758 2877436338");
            WillReturn.Add("4975681328 8974383988 2882263257 7690203955 514305523 6679823484 4263279310 585966808 3752282379 620585736");
            //23379871545
            //22444657051
            //22302177772
            //22095691512
            //21667941469
            //21366963278
            //21287912315
            //21279176669
            //21160477018
            //21085311041
            //21059876163
            //21017997739
            //20703329561
            //20702387965
            //20590247696
            //20383761436
            //20343962175
            //20254073196
            //20210218542
            //20150096547
        }
        else {
            string wkStr;
            while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
        }
        return WillReturn;
    }

    static void Main()
    {
        List<string> InputList = GetInputList();

        long[] wkArr = InputList[0].Split(' ').Select(pX => long.Parse(pX)).ToArray();
        long X = wkArr[0];
        long Y = wkArr[1];
        long Z = wkArr[2];
        int K = (int)wkArr[3];

        long[] AArr = InputList[1].Split(' ').Select(pX => long.Parse(pX)).ToArray();
        long[] BArr = InputList[2].Split(' ').Select(pX => long.Parse(pX)).ToArray();
        long[] CArr = InputList[3].Split(' ').Select(pX => long.Parse(pX)).ToArray();
        Array.Sort(AArr, (A, B) => B.CompareTo(A));
        Array.Sort(BArr, (A, B) => B.CompareTo(A));
        Array.Sort(CArr, (A, B) => B.CompareTo(A));

        int UB_A = AArr.GetUpperBound(0);
        int UB_B = BArr.GetUpperBound(0);
        int UB_C = CArr.GetUpperBound(0);

        var SumAB = new List<long>();
        for (int I = 0; I <= UB_A; I++) {
            for (int J = 0; J <= UB_B; J++) {
                if ((I + 1) * (J + 1) > K) break;
                SumAB.Add(AArr[I] + BArr[J]);
            }
        }
        SumAB.Sort((A, B) => B.CompareTo(A));

        var SumABC = new List<long>();
        for (int I = 0; I <= Math.Min(SumAB.Count, K) - 1; I++) {
            for (int J = 0; J <= UB_C; J++) {
                if ((I + 1) * (J + 1) > K) break;
                SumABC.Add(SumAB[I] + CArr[J]);
            }
        }
        SumABC.Sort((A, B) => B.CompareTo(A));
        var sb = new System.Text.StringBuilder();
        for (int I = 0; I <= Math.Min(SumABC.Count, K) - 1; I++) {
            sb.AppendLine(SumABC[I].ToString());
        }
        Console.Write(sb.ToString());
    }
}


Measured memory_bytes: 15200