#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;
}