#include <iostream>
#include <fstream>
#include <unordered_map>
int n, S, v[100];
struct Info {
int x=-1, y=-1, z=-1;
};
std::unordered_map<int, Info> map;
int main()
{
std::ifstream f("loto.in");
std::ofstream g("loto.out");
f >> n >> S;
for (int i = 0; i < n; ++i)
f >> v[i];
for (int i = 0; i < n; ++i)
for (int j = i; j < n; ++j)
for (int k = j; k < n; ++k)
{
int sum3 = v[i] + v[j] + v[k];
Info temp = map[S - sum3];
if (temp.x != -1)
{
g << v[temp.x] << ' ' << v[temp.y] << ' ' << v[temp.z] << ' ' << v[i] << ' ' << v[j] << ' ' << v[k];
return 0;
}
map[sum3] = { i,j,k };
}
g << -1;
}