#include <bits/stdc++.h>
using namespace std;
void helper(vector<bool>&vis,vector<int>&coins,string asf,int tar){
if(tar == 0){
cout<<asf<<endl;
return;
}
if(tar < 0)return;
for(int i = 0;i<coins.size();i++){
if(vis[i]==false){
vis[i]=true;
helper(vis,coins,asf+to_string(coins[i])+",",tar-coins[i]);
vis[i]=false;
}
}
}
int main() {
int n,tar;
cin>>n>>tar;
vector<int>coins(n);
for(int i = 0 ;i<n ;i++){
cin>>coins[i];
}
vector<bool>vis(n);
helper(vis,coins,"",tar);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQgaGVscGVyKHZlY3Rvcjxib29sPiZ2aXMsdmVjdG9yPGludD4mY29pbnMsc3RyaW5nIGFzZixpbnQgdGFyKXsKCWlmKHRhciA9PSAwKXsKCQljb3V0PDxhc2Y8PGVuZGw7CgkJcmV0dXJuOwoJfQoJCglpZih0YXIgPCAwKXJldHVybjsKCQoJZm9yKGludCBpID0gMDtpPGNvaW5zLnNpemUoKTtpKyspewoJCWlmKHZpc1tpXT09ZmFsc2UpewoJCXZpc1tpXT10cnVlOwoJCWhlbHBlcih2aXMsY29pbnMsYXNmK3RvX3N0cmluZyhjb2luc1tpXSkrIiwiLHRhci1jb2luc1tpXSk7CgkJdmlzW2ldPWZhbHNlOwoJCX0KCX0KfQppbnQgbWFpbigpIHsKICAgICBpbnQgbix0YXI7CiAgICAgY2luPj5uPj50YXI7CiAgICAgdmVjdG9yPGludD5jb2lucyhuKTsKICAgICBmb3IoaW50IGkgPSAwIDtpPG4gO2krKyl7CiAgICAgCWNpbj4+Y29pbnNbaV07CiAgICAgfQogICAgIHZlY3Rvcjxib29sPnZpcyhuKTsKICAgIAogICAgIGhlbHBlcih2aXMsY29pbnMsIiIsdGFyKTsKCXJldHVybiAwOwp9
2,5,3,
2,3,5,
4,6,
6,4,
5,2,3,
5,3,2,
3,2,5,
3,5,2,