#include <algorithm>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int target,n;
int flag = 0;
int Answer[31];
bool Taken[31];
void dfs (int Nums[] , int total , int step )
{
int tag = -1;//
if ( total == target ){
flag = 1;
int i;
for ( i=1 ; i<step ; i++ ){
if ( i!=1 )
printf(" ");
printf("%d",Answer[i]);
}
printf("\n");
return;
}
int k;
for ( k=1 ; k<=n ; k++ ){
if (Taken[k] == false){
if (k != tag){//
if (total + Nums[k] <= target && Nums[k]>=Answer[step-1] ){
tag = k;//
Answer[step] = Nums[k];
Taken[k] = true;
dfs(Nums, total + Nums[k], step + 1);
Taken[k] = false;
}
}
}
}
}
int main()
{
int Nums[31];
int i,j;
while(scanf("%d%d",&n,&target)==2){
for( i=1 ; i<=n ; i++ )
scanf("%d",&Nums[i]);
sort(Nums+1,Nums+(n+1));
dfs(Nums,0,1);
if (flag == 0)
printf("-1\n");
}
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCB0YXJnZXQsbjsKaW50IGZsYWcgPSAwOwppbnQgQW5zd2VyWzMxXTsKYm9vbCBUYWtlblszMV07CnZvaWQgZGZzIChpbnQgTnVtc1tdICwgaW50IHRvdGFsICwgaW50IHN0ZXAgKQp7CiAgICBpbnQgdGFnID0gLTE7Ly8KICAgIGlmICggdG90YWwgPT0gdGFyZ2V0ICl7CiAgICAgICAgZmxhZyA9IDE7CiAgICAgICAgaW50IGk7CiAgICAgICAgZm9yICggaT0xIDsgaTxzdGVwIDsgaSsrICl7CiAgICAgICAgICAgIGlmICggaSE9MSApCiAgICAgICAgICAgICAgICBwcmludGYoIiAiKTsKICAgICAgICAgICAgcHJpbnRmKCIlZCIsQW5zd2VyW2ldKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpbnQgazsKICAgIGZvciAoIGs9MSA7IGs8PW4gOyBrKysgKXsKICAgICAgICBpZiAoVGFrZW5ba10gPT0gZmFsc2UpewogICAgICAgICAgICBpZiAoayAhPSB0YWcpey8vCiAgICAgICAgICAgICAgICBpZiAodG90YWwgKyBOdW1zW2tdIDw9IHRhcmdldCAmJiBOdW1zW2tdPj1BbnN3ZXJbc3RlcC0xXSApewogICAgICAgICAgICAgICAgICAgIHRhZyA9IGs7Ly8KICAgICAgICAgICAgICAgICAgICBBbnN3ZXJbc3RlcF0gPSBOdW1zW2tdOwogICAgICAgICAgICAgICAgICAgIFRha2VuW2tdID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBkZnMoTnVtcywgdG90YWwgKyBOdW1zW2tdLCBzdGVwICsgMSk7CiAgICAgICAgICAgICAgICAgICAgVGFrZW5ba10gPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCn0KCgppbnQgbWFpbigpCnsKICAgIGludCBOdW1zWzMxXTsKICAgIGludCBpLGo7CiAgICB3aGlsZShzY2FuZigiJWQlZCIsJm4sJnRhcmdldCk9PTIpewoJICAgIGZvciggaT0xIDsgaTw9biA7IGkrKyApCgkgICAgICAgIHNjYW5mKCIlZCIsJk51bXNbaV0pOwoJICAgIHNvcnQoTnVtcysxLE51bXMrKG4rMSkpOwoJICAgIGRmcyhOdW1zLDAsMSk7CgkgICAgaWYgKGZsYWcgPT0gMCkKCSAgICAgICAgcHJpbnRmKCItMVxuIik7CiAgICB9Cn0=