#include <stdio.h>
#include <stdlib.h>
unsigned int *bubbsort(unsigned int n,unsigned int *a){
unsigned int i,sch;
while(1){
short int da=1;
for(i=0;i<n-1;i++){
if(a[i]>a[i+1]){
da=0;
sch=a[i];
a[i]=a[i+1];
a[i+1]=sch;
}
}
if(da==1){
return a;
break;
}
}
}
void *splisort(unsigned int n,unsigned int *a){
}
int dasol(unsigned int n,unsigned int *a, unsigned int m, unsigned int *r, int pas, unsigned int *u){
while(u>=a && *u>m) u--;
int np=pas+1;
int ok=0;
while(u>=a){
r[pas]=*u;
if(pas==5)return *u==m?1:0;
ok=dasol(n, a, m-*u, r, np, u);
if(ok) break;
u--;
}
return ok;
}
int fofor(unsigned int n,unsigned int *a, unsigned int m, unsigned int *r){
unsigned int *p1,*p2,*p3,*p4,*p5,*p6, *lim=&a[n-1];
for(p1=a;p1<=lim;p1++){
for(p2=p1;p2<=lim;p2++){
for(p3=p2;p3<=lim;p3++){
for(p4=p3;p4<=lim;p4++){
for(p5=p4;p5<=lim;p5++){
for(p6=p5;p6<=lim;p6++){
unsigned int ss=*p1+*p2+*p3+*p4+*p5+*p6;
if(ss>m) break;
if(ss==m){
r[0]=*p1;
r[1]=*p2;
r[2]=*p3;
r[3]=*p4;
r[4]=*p5;
r[5]=*p6;
return 1;
}
}
}
}
}
}
}
return 0;
}
int fofor2(unsigned int n,unsigned int *a, unsigned int s, unsigned int *r){
unsigned int *p1,*p2,*p3,*p4,*p5,*p6, *lim=&a[n-1];
for(p1=lim;p1>=a;p1--){
if(*p1>s) continue;
for(p2=p1;p2>=a;p2--){
if(*p1+*p2>s) continue;
for(p3=p2;p3>=a;p3--){
if(*p1+*p2+*p3>s) continue;
for(p4=p3;p4>=a;p4--){
if(*p1+*p2+*p3+*p4>s) continue;
for(p5=p4;p5>=a;p5--){
if(*p1+*p2+*p3+*p4+*p5>s) continue;
for(p6=p5;p6>=a;p6--){
if(*p1+*p2+*p3+*p4+*p5+*p6>s) continue;
unsigned int ss=*p1+*p2+*p3+*p4+*p5+*p6;
if(ss==s){
r[0]=*p1;
r[1]=*p2;
r[2]=*p3;
r[3]=*p4;
r[4]=*p5;
r[5]=*p6;
return 1;
}
}
}
}
}
}
}
return 0;
}
int main()
{
unsigned int n,s,i,k=0,r[6]={0,0,0,0,0,0};
FILE *fin;
fin=fopen("loto.in","r");
fscanf(fin,"%u %u",&n,&s);
unsigned int *val=malloc(n*4);
for(i=0;i<n;i++){
fscanf(fin,"%u",&val[i]);
}
fclose(fin);
bubbsort(n,val);
/*for(i=n-1;i>=0 && k<6;i--){
if(s/val[n]<=6-k){
unsigned int k1=k;
k=k+s/val[n];
s=s%val[n];
while(k1<k){
r[k1]=val[n];
k1++;
}
}
}*/
unsigned int *g=&val[n-1];
while(g>=val && *g>2*s/3) g--;
if(g<val) g=val;
//int ok=dasol(n, val, s, r, 0, g);
//if(!ok) ok=dasol(n, val, s, r, 0, &val[n-1]);
int ok=fofor(n,val,s,r);
FILE *fout;
fout=fopen("loto.out","w");
if(ok){
for(i=0;i<6;i++){
fprintf(fout,"%u ",r[i]);
}
}else fprintf(fout,"-1");
return 0;
}