#include <bits/stdc++.h>
void quicksort(int x[], int first, int last, int y[]) {
  int pivot, j, temp, i;
  if (first < last) {
    pivot = first;
    i = first;
    j = last;
    while (i < j) {
      while (x[i] >= x[pivot] && i < last) i++;
      while (x[j] < x[pivot]) j--;
      if (i < j) {
        temp = x[i];
        x[i] = x[j];
        x[j] = temp;
        temp = y[i];
        y[i] = y[j];
        y[j] = temp;
      }
    }
    temp = x[pivot];
    x[pivot] = x[j];
    x[j] = temp;
    temp = y[pivot];
    y[pivot] = y[j];
    y[j] = temp;
    quicksort(x, first, j - 1, y);
    quicksort(x, j + 1, last, y);
  }
}
int main() {
  long long int n, v;
  scanf("%lld", &n);
  scanf("%lld", &v);
  int kay[n], cat[n], indkay[n], indcat[n];
  int i, k = 0, j = 0, m = 0, temp, l;
  long long int max = 0;
  for (i = 0; i < n; i++) {
    scanf("%d", &temp);
    if (temp == 1) {
      scanf("%d", &kay[k]);
      indkay[k] = i + 1;
      k++;
    } else {
      scanf("%d", &cat[j]);
      indcat[j] = i + 1;
      j++;
    }
  }
  quicksort(kay, 0, k - 1, indkay);
  quicksort(cat, 0, j - 1, indcat);
  l = 0;
  int print[n], o = 0;
  for (i = 0; v > 0; i++) {
    if (m != j || l != k) {
      if (l + 1 < k && m < j) {
        if (cat[m] > kay[l] + kay[l + 1] && v > 1) {
          print[o] = indcat[m];
          max += cat[m];
          m++;
          o++;
          v -= 2;
        } else {
          print[o] = indkay[l];
          max += kay[l];
          l++;
          o++;
          v--;
        }
      } else if (l < k && m < j && kay[l] > cat[m]) {
        print[o] = indkay[l];
        max += kay[l];
        l++;
        o++;
        v--;
      } else if (m < j && v > 1) {
        print[o] = indcat[m];
        max += cat[m];
        m++;
        o++;
        v -= 2;
      } else if (l < k) {
        print[o] = indkay[l];
        max += kay[l];
        l++;
        o++;
        v--;
      } else {
        v = 0;
      }
    } else {
      v = 0;
    }
  }
  if (max == 0) {
    printf("%lld", max);
    return 0;
  }
  printf("%lld\n", max);
  for (i = 0; i < o; i++) {
    printf("%d", print[i]);
    if (i != o - 1) {
      printf(" ");
    }
  }
  return 0;
}
