#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 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>s/4) 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]);
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;
}