import Data.List
import Control.Monad
import qualified Data.ByteString.Char8 as BS
import Data.Maybe

main :: IO ()
main = do
  [x,y,z,k] <- map read . words <$> getLine :: IO [Int]
  as <- map (fst . fromJust . BS.readInteger) . BS.words <$> BS.getLine :: IO [Integer]
  bs <- map (fst . fromJust . BS.readInteger) . BS.words <$> BS.getLine :: IO [Integer]
  cs <- map (fst . fromJust . BS.readInteger) . BS.words <$> BS.getLine :: IO [Integer]

  let ds = take k . reverse . sort $ [a+b | a<-as, b<-bs]
  let ans = take k . reverse . sort $ [c+d | c<-cs, d<-ds]

  mapM_ print $ ans
