#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int dp[11000],A[5100];
int main( )
{
int N,M,i,j,k,max;
while(scanf("%d%d",&N,&M)!=EOF)
{
k=0;max=0;
memset(dp,0,sizeof(dp));
for(i=1;i<=N;i++)
scanf("%d",&A[i]);
for(i=1;i<N;i++)
for(j=i+1;j<=N;j++)
{
k=A[i]+A[j];
if(k>max)
max=k;
dp[k]++;
}
for(j=0,i=max;j<M&&i>=1;i--)
if(dp[i])
while(dp[i]&&j<M)
{
j++; //刚开始没有在这个循环里面加j<m.
//wa了好几次了。。考虑不仔细。
printf(j==1?"%d":" %d",i);
dp[i]--;
}
printf("\n");
}
return 0;
}