#include <bits/stdc++.h>
using namespace std;
struct S {
  int idx, v;
  S() {}
  S(int _idx, int _v) { idx = _idx, v = _v; }
};
bool cmp(S a, S b) { return a.v < b.v; }
int main() {
  int n, m, tmp;
  vector<S> v;
  vector<int> ans;
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    cin >> tmp;
    v.push_back(S(i + 1, tmp));
  }
  sort(v.begin(), v.end(), cmp);
  for (int i = 0; i < n; i++) {
    if (m >= v[i].v) {
      ans.push_back(v[i].idx);
      m -= v[i].v;
    }
  }
  sort(ans.begin(), ans.end());
  cout << ans.size() << endl;
  if (ans.size() > 0) {
    cout << ans[0];
    for (int i = 1; i < ans.size(); i++) cout << ' ' << ans[i];
    cout << endl;
  }
  return 0;
}
