#include<fstream>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
const int M=666019,MIL=1000001;
int lst[M],val[MIL],urm[MIL],nr,v[101];
void adauga(int x)
{
int r=x%M;
nr++;
val[nr]=x;
urm[nr]=lst[r];
lst[r]=nr;
}
bool cauta(int x)
{
int p=lst[x%M];
while(p!=0)
{
if(val[p]==x)
return true;
p=urm[p];
}
return false;
}
void afiseaza(int n,int x)
{
int i,j,k,s;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
for(k=1; k<=n; k++)
{
s=v[i]+v[j]+v[k];
if(x==s)
{
g<<v[i]<<" "<<v[j]<<" "<<v[k];
return;
}
}
}
int main()
{
int n,i,s,j,k,sum;
f>>n>>sum;
for(i=1; i<=n; i++)
f>>v[i];
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
for(k=1; k<=n; k++)
{
s=v[i]+v[j]+v[k];
adauga(s);
}
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
for(k=1; k<=n; k++)
{
s=v[i]+v[j]+v[k];
if(cauta(sum-s))
{
g<<v[i]<<" "<<v[j]<<" "<<v[k]<<" ";
afiseaza(n,sum-s);
return 0;
}
}
}