#include <bits/stdc++.h>
using namespace std;
template <class c>
struct rge {
  c b, e;
};
template <class c>
rge<c> range(c i, c j) {
  return rge<c>{i, j};
}
template <class c>
auto dud(c* x) -> decltype(cerr << *x, 0);
template <class c>
char dud(...);
struct debug {
  template <class c>
  debug& operator<<(const c&) {
    return *this;
  }
};
void test_case() {
  int n, k;
  cin >> n >> k;
  vector<pair<int, int>> a(n);
  for (int i = 0; i < n; i++) {
    cin >> a[i].first;
    a[i].second = i;
  }
  sort(a.begin(), a.end(), less<pair<int, int>>());
  int start = 0, tot = 0;
  vector<int> res;
  while (start < n && k - a[start].first >= 0) {
    debug() << " ["
            << "k"
               ": "
            << (k) << "] ";
    tot++;
    k = k - a[start].first;
    res.push_back(a[start].second + 1);
    start++;
  }
  cout << tot << endl;
  for (int x : res) {
    cout << x << " ";
  }
  cout << endl;
}
int main() {
  int t = 1;
  for (int i = 0; i < t; i++) test_case();
  return 0;
}
