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