#include <stdio.h>
#include <algorithm>
using namespace std;
int v[101];
int sol[1000001];
int main()
{
FILE *fin,*fout;
int n,m,i,nr,k,x,y,st,dr,ok;
fin=fopen("loto.in","r");
fout=fopen("loto.out","w");
fscanf(fin,"%d%d",&n,&m);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&nr);
v[i]=nr;
}
k=1;
for(i=1;i<=n;i++)
for(x=1;x<=n;x++)
for(y=1;y<=n;y++)
{
sol[k]=v[i]+v[y]+v[x];
k++;
}
nr=n;
n=n*n*n;
sort(sol+1,sol+n+1);
ok=0;
st=1;
dr=n;
while(st<=dr&&ok==0)
{
if(sol[st]+sol[dr]==m)
ok=1;
else if(sol[st]+sol[dr]<m)
st++;
else
dr--;
}
if(ok==1)
{
n=nr;
for(i=1;i<=n;i++)
for(x=1;x<=n;x++)
for(y=1;y<=n;y++)
{
if(sol[st]==v[x]+v[y]+v[i])
{
fprintf(fout,"%d %d %d ",v[x],v[y],v[i]);i=n;
x=n;
y=n;
}
}
for(i=1;i<=n;i++)
for(x=1;x<=n;x++)
for(y=1;y<=n;y++)
{
if(sol[dr]==v[x]+v[y]+v[i])
{
fprintf(fout,"%d %d %d ",v[x],v[y],v[i]); i=n;
x=n;
y=n;
}
}
}
else
fprintf(fout,"-1");
fclose(fin);
fclose(fout);
}