#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n1,n2,n3,k,sum = 0;
    cin>>n1>>k;
    vector<int> a(n1);
    for(int i = 0;i<n1;i++)
    {
        cin>>a[i];
    }
    n2 = n1;
    vector<int> b(n2);
    for(int i = 0;i<n2;i++)
    {
        cin>>b[i];
    }
    if(k>n1) n3 = n1;
    else n3 = k;
    vector<int> c(n3);
    vector<int> d(n3);
  //这里用c存所有可能最大的组合,i为a的下标,d[i]为b的下标
    for(int i = 0; i<n3;i++)
    {
        c[i] = a[n1-i-1]+b[n2-1];
        d[i] = n2-1;
    }
    for(int i = 0;i<k;i++)
    {
        int mix= c[0],mixd=0;
        for(int j = 1;j<n3;j++)
        {
            if(mix<c[j])
            {
                mix = c[j];
                mixd = j;
            }
        }
        cout<<mix<<" ";
	  //找到c中最大值,并通过b的下标减一更新c的值
        d[mixd]--;
        if(d[mixd]<0)
            c[mixd] = 0;
        else c[mixd] = c[mixd] - b[d[mixd]+1]+b[d[mixd]];
    }
}