#include <iostream>
#include <iterator>
#include <algorithm>
#include <vector>
// standard c++0x
using namespace std;
typedef istream_iterator<int> in;
int main()
{
int amount,sum;
cin >> amount >> sum;
vector<int>coins;
for(int i(amount);i-->0;)
coins.push_back(*in(cin));
sort(coins.begin(),coins.end(),[](int i,int j){return i>j;});
vector<int>result(amount);
int j(0);
for_each(coins.begin(),coins.end(),[&](int i){while(sum-i>=0){sum-=i;result[j]++;}j++;});
cout << accumulate(result.begin(),result.end(),0) << endl;
j = 0;
for_each(coins.begin(),coins.end(),[&](int i){while(result[j]--){cout << i << " ";}j++;});
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDx2ZWN0b3I+CgovLyBzdGFuZGFyZCBjKysweAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgaXN0cmVhbV9pdGVyYXRvcjxpbnQ+IGluOwoKaW50IG1haW4oKQp7CiAgICBpbnQgYW1vdW50LHN1bTsKICAgIGNpbiA+PiBhbW91bnQgPj4gc3VtOwogICAgdmVjdG9yPGludD5jb2luczsKICAgIGZvcihpbnQgaShhbW91bnQpO2ktLT4wOykKICAgICAgICBjb2lucy5wdXNoX2JhY2soKmluKGNpbikpOwogICAgc29ydChjb2lucy5iZWdpbigpLGNvaW5zLmVuZCgpLFtdKGludCBpLGludCBqKXtyZXR1cm4gaT5qO30pOwogICAgdmVjdG9yPGludD5yZXN1bHQoYW1vdW50KTsKICAgIGludCBqKDApOwogICAgZm9yX2VhY2goY29pbnMuYmVnaW4oKSxjb2lucy5lbmQoKSxbJl0oaW50IGkpe3doaWxlKHN1bS1pPj0wKXtzdW0tPWk7cmVzdWx0W2pdKys7fWorKzt9KTsKICAgIGNvdXQgPDwgYWNjdW11bGF0ZShyZXN1bHQuYmVnaW4oKSxyZXN1bHQuZW5kKCksMCkgPDwgZW5kbDsKICAgIGogPSAwOwogICAgZm9yX2VhY2goY29pbnMuYmVnaW4oKSxjb2lucy5lbmQoKSxbJl0oaW50IGkpe3doaWxlKHJlc3VsdFtqXS0tKXtjb3V0IDw8IGkgPDwgIiAiO31qKys7fSk7CiAgICByZXR1cm4gMDsKfQ==