#define forn(i, n) for (int i = 0; i < (int)(n); i++)

int main() {
  int n, W;
  cin >> n >> W;
  int w[n];
  forn(i, n)
    cin >> w[i];

  int is[n + 1][W + 1]; 
  int p[n + 1][W + 1]; 
  // is[i][x] -- можно ли первыми i предметами
  // набрать вес x
  // Существует ли I \subseteq {0....i} : \sum_I w[i] = x
  memset(is, 0, sizeof(is));
  is[0][0] = 1;
  forn(i, n) // 0 <= i < n
    forn(x, W - w[i] + 1) // x < 
      if (is[i][x]) {
        is[i + 1][x] = 1;
        p[i + 1][x] = 0;
        is[i + 1][x + w[i]] = 1;
        p[i + 1][x + w[i]] = 1;
      }
  int max_w = W;
  while (!is[n][max_w])
    max_w--;
  for (int i = n; i > 0; i--)
    if (p[i][max_w])
      printf("%d ", i), max_w -= w[i - 1];
}