#include <bits/stdc++.h>
using namespace std;
struct node {
  int a, i;
} dd[1000];
int cmp(node x, node y) { return x.a < y.a; }
int a[1000];
int s = 0;
int main() {
  int n, k;
  scanf("%d %d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%d", &dd[i].a);
    dd[i].i = i;
  }
  sort(dd, dd + n, cmp);
  int num = 0;
  int t = 0;
  while (k - dd[t].a >= 0) {
    num++;
    k -= dd[t].a;
    a[s++] = dd[t].i + 1;
    t++;
    if (t == n) break;
  }
  printf("%d\n", num);
  for (int i = 0; i < s; i++) {
    if (i == 0)
      printf("%d", a[i]);
    else
      printf(" %d", a[i]);
  }
  return 0;
}
