#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, v;
  vector<pair<int, int> > val[3];
  cin >> n >> v;
  for (int i = 0; i < n; i++) {
    int type, q;
    cin >> type >> q;
    val[type].push_back(pair<int, int>(q, i + 1));
  }
  sort(val[1].begin(), val[1].end());
  sort(val[2].begin(), val[2].end());
  int i1 = val[1].size() - 1;
  int i2 = val[2].size() - 1;
  int ret = 0;
  vector<int> ve;
  while (v > 1 && i1 > 0 && i2 >= 0) {
    if (val[1][i1].first + val[1][i1 - 1].first > val[2][i2].first) {
      ret += val[1][i1].first;
      ve.push_back(val[1][i1].second);
      i1--;
      v--;
    } else {
      ret += val[2][i2].first;
      ve.push_back(val[2][i2].second);
      i2--;
      v -= 2;
    }
  }
  while (v > 1 && i2 >= 0) {
    ret += val[2][i2].first;
    ve.push_back(val[2][i2].second);
    v -= 2, i2--;
  }
  while (v > 0 && i1 >= 0) {
    ret += val[1][i1].first;
    ve.push_back(val[1][i1].second);
    v--, i1--;
  }
  cout << ret << endl;
  for (int i = 0; i < ve.size(); i++) {
    cout << ve[i] << " ";
  }
  return 0;
}
