#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
#define N 100
struct o{
int x,p;
}trip[N*N*N];
int v[N];
bool cmp(const o& a, o&b){
return a.x<b.x;
}
int main(){
int n,s,i,j,k,m=0;
fin >> n >> s;
for(i=0;i<n;i++)
fin >> v[i];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0;k<n;k++){
trip[m].x=v[i]+v[j]+v[k];
trip[m].p = m;
m++;
}
sort(trip, trip+m, cmp);
j=m-1;
for(i=0;i<m;i++){
while(s<trip[i].x+trip[j].x&&j-->i);
if(trip[i].x+trip[j].x==s){
fout << v[trip[i].p/(n*n)] <<" "<< v[(trip[i].p/n)%n] <<" "<< v[trip[i].p%n] << " "<< v[trip[j].p/(n*n)] <<" "<< v[(trip[j].p/n)%n] <<" "<< v[trip[j].p%n];
return 0;
}
}
fout << "-1";
return 0;
}