#include <bits/stdc++.h>
using namespace std;
bool cmp(const pair<int, int> &a, const pair<int, int> &b) {
  return a.first > b.first;
}
pair<int, int> kaya[100010];
pair<int, int> cata[100010];
int main() {
  int N, V;
  while (scanf("%d%d", &N, &V) != EOF) {
    int a, b;
    int numka = 0, numya = 0;
    for (int i = 1; i <= N; i++) {
      scanf("%d%d", &a, &b);
      if (a == 1) {
        kaya[numka].first = b;
        kaya[numka].second = i;
        numka++;
      } else {
        cata[numya].first = b;
        cata[numya].second = i;
        numya++;
      }
    }
    sort(kaya, kaya + numka, cmp);
    sort(cata, cata + numya, cmp);
    int catai = 0;
    pair<int, int> ans[100010];
    int numans = 0;
    while (V >= 2 && catai < numya) {
      ans[numans] = cata[catai];
      V -= 2;
      catai++;
      numans++;
    }
    catai--;
    int kayai = 0;
    while (V >= 1 && kayai < numka) {
      ans[numans] = kaya[kayai];
      V -= 1;
      kayai++;
      numans++;
    }
    for (; kayai < numka - 1 && catai >= 0;) {
      if ((kaya[kayai].first + kaya[kayai + 1].first) > ans[catai].first) {
        ans[catai] = pair<int, int>(-1, -1);
        ans[numans] = kaya[kayai];
        numans++;
        ans[numans] = kaya[kayai + 1];
        numans++;
        catai--;
        kayai += 2;
      } else {
        kayai++;
      }
    }
    if (catai >= 0 && kayai == numka - 1) {
      if (kaya[kayai].first > ans[catai].first) {
        ans[catai] = pair<int, int>(-1, -1);
        ans[numans] = kaya[kayai];
        numans++;
        catai--;
      }
    }
    if (numans > 0) {
      int sum = 0;
      for (int i = 0; i < numans; i++) {
        if (ans[i] != pair<int, int>(-1, -1)) {
          sum += ans[i].first;
        }
      }
      printf("%d\n", sum);
      for (int i = 0; i < numans - 1; i++) {
        if (ans[i] != pair<int, int>(-1, -1)) {
          printf("%d ", ans[i].second);
        }
      }
      if (ans[numans - 1] != pair<int, int>(-1, -1)) {
        printf("%d\n", ans[numans - 1].second);
      }
    } else {
      printf("0\n");
    }
  }
  return 0;
}
