#include<bits/stdc++.h>
#define endl "\n"
using namespace std;
typedef long long ll;
const int mod = 1e9 + 7;
int main(){
int n, k, count = 0;
cin >> n >> k;
vector<int> a(n);
for(int &num : a)
cin >> num;
int x = 1 << n;
for(int i=0; i<x; i++){
vector<int> v;
int sum = 0;
for(int j=0; j<n; j++){
if(i & (1<<i)){
v.push_back(a[j]);
sum += a[j];
}
}
if(sum == k){
for(int num : v)
cout << num << " ";
cout << endl;
count++;
}
}
cout << count << endl;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBlbmRsICJcbiIKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CmNvbnN0IGludCBtb2QgPSAxZTkgKyA3OwoKaW50IG1haW4oKXsKCWludCBuLCBrLCBjb3VudCA9IDA7CgljaW4gPj4gbiA+PiBrOwoJdmVjdG9yPGludD4gYShuKTsKCWZvcihpbnQgJm51bSA6IGEpCgkJY2luID4+IG51bTsKCWludCB4ID0gMSA8PCBuOwoJZm9yKGludCBpPTA7IGk8eDsgaSsrKXsKCQl2ZWN0b3I8aW50PiB2OwoJCWludCBzdW0gPSAwOwoJCWZvcihpbnQgaj0wOyBqPG47IGorKyl7CgkJCWlmKGkgJiAoMTw8aSkpewoJCQkJdi5wdXNoX2JhY2soYVtqXSk7CgkJCQlzdW0gKz0gYVtqXTsKCQkJfQoJCX0KCQlpZihzdW0gPT0gayl7CgkJCWZvcihpbnQgbnVtIDogdikKCQkJCWNvdXQgPDwgbnVtIDw8ICIgIjsKCQkJY291dCA8PCBlbmRsOwoJCQljb3VudCsrOwoJCX0KCX0KCWNvdXQgPDwgY291bnQgPDwgZW5kbDsKCXJldHVybiAwOwp9Cg==