#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
const int mod=592993;
vector<int>g[mod+5];
int n,s,v[105];
inline void add_num(int nr)
{
g[nr%mod].push_back(nr);
return;
}
inline bool exist_num(int nr)
{
int x=nr%mod;
vector<int>::iterator it;
for(it=g[x].begin();it!=g[x].end();++it)
if(*it==nr)
return 1;
return 0;
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int i,j,k,left,sum=-1;
scanf("%d%d",&n,&s);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
sort(v+1,v+n+1);
for(i=1;i<=n;i++)
for(j=1;j<=n&&v[i]+v[j]<=s;j++)
for(k=1;k<=n&&v[i]+v[j]+v[k]<=s;k++)
add_num(v[i]+v[j]+v[k]);
for(i=1;i<=n&&sum==-1;i++)
for(j=1;j<=n&&v[i]+v[j]<=s&&sum==-1;j++)
for(k=1;k<=n&&v[i]+v[j]+v[k]<=s&&sum==-1;k++)
{
left=s-v[i]-v[j]-v[k];
if(exist_num(left))
{
sum=left;
printf("%d %d %d ",v[i],v[j],v[k]);
}
}
if(sum==-1)
printf("-1");
else
{
for(i=1;i<=n;i++)
for(j=1;j<=n&&v[i]+v[j]<=s;j++)
for(k=1;k<=n&&v[i]+v[j]+v[k]<=s;k++)
{
if(v[i]+v[j]+v[k]==sum)
{
printf("%d %d %d",v[i],v[j],v[k]);
return 0;
}
}
}
return 0;
}