#include <iostream>
#include <fstream>
#include <vector>
#include <unordered_map>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int main()
{int n ,s,check = 0;
unordered_map<int,int[3]> tab;
fin>>n>>s;
int v[n];
for(int i = 0 ; i < n ; i++)
fin>>v[i];
for(int i = 0 ; i < n && !check; i++)
for(int j = 0 ; j < n && !check; j++)
for(int k = 0 ; k < n && !check; k++){
int sum = v[i] + v[j] + v[k];
tab[sum][0] = v[i];
tab[sum][1] = v[j];
tab[sum][2] = v[k];
if(tab.find(s - sum) != tab.end()){
check = 1;
fout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<tab[s-sum][0]<<" "<<tab[s-sum][1]<<" "<<tab[s-sum][2];
}
}
if(!check)
fout<<-1;
fin.close();
fout.close();
return 0;
}