#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n,k;
deque<ll>c(vector<ll>&v,ll x)
{
deque<ll>f,q;
ll l=0,r=v.size()-1;
while(l<r && f.size()*2<n)
{
if(v[l]+v[r]==x)
{
f.push_back(v[l]);
q.push_front(v[r]);
l++;
r--;
}
else if(v[l]+v[r]<x)
{
l++;
}
else
{
r--;
}
}
if(f.size()*2<n)
{
return {};
}
while(f.size()*2>n)
{
f.pop_back();
q.pop_back();
}
f.insert(f.end(),q.begin(),q.end());
return f;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>k;
vector<ll>v(n+k);
for(int i=0; i<n+k; i++)
{
cin>>v[i];
}
set<ll>s;
for(int i=0; i<=k; i++)
{
for(int j=n-1; j<n+k; j++)
{
if(i<j)
s.insert(v[i]+v[j]);
}
}
for(int x:s)
{
deque<ll>f,q;
ll l=0,r=v.size()-1;
while(l<r && f.size()*2<n)
{
if(v[l]+v[r]==x)
{
f.push_back(v[l]);
q.push_front(v[r]);
l++;
r--;
}
else if(v[l]+v[r]<x)
{
l++;
}
else
{
r--;
}
}
if(f.size()*2<n)
{
continue;
}
while(f.size()*2>n)
{
f.pop_back();
q.pop_back();
}
for(int j:f)
cout<<j<<' ';
for(int j:q)
cout<<j<<' ';
return 0;
}
}