#include<bits/stdc++.h>
using namespace std;
void dfs(int n[],int pos,int m,bool f[],int t,bool &check)
{
if(m==0)
{
check=1;
for(int i=0;i<t;i++)
{
if(f[i]) cout<<n[i]<<" ";
}
cout<<"\n";
return ;
}
if(pos>=t) return ;
if(n[pos]>m) return ;
f[pos]=1;
dfs(n,pos+1,m-n[pos],f,t,check);//選擇此數
f[pos]=0;
dfs(n,pos+1,m,f,t,check);//不選此數
return ;
}
int main()
{
int t,m;
bool check=0;
while(cin>>t>>m)
{
int n[t];
for(int i=0;i<t;i++) cin>>n[i];
sort(n,n+t);
//vector<int> ans;
bool f[t];
memset(f,0,sizeof(f));
dfs(n,0,m,f,t,check);
if(!check) cout<<-1<<"\n";
}
}