#include <bits/stdc++.h>
using namespace std;
int n, v, t, p, cnt1, cnt2, x;
vector<pair<int, int>> k, c;
vector<int> ans;
void add(bool sm) {
  v--;
  if (sm) {
    x += k[cnt1].first;
    ans.push_back(k[cnt1++].second);
  } else {
    x += c[cnt2].first;
    ans.push_back(c[cnt2++].second);
    v--;
  }
}
void solve() {
  cin >> n >> v;
  for (int i = 0; i < n; ++i) {
    cin >> t >> p;
    t--;
    if (t) {
      c.push_back({p, i + 1});
    } else {
      k.push_back({p, i + 1});
    }
  }
  sort(k.begin(), k.end());
  sort(c.begin(), c.end());
  reverse(k.begin(), k.end());
  reverse(c.begin(), c.end());
  while ((v >= 1 && cnt1 < k.size()) || (v >= 2 && cnt2 < c.size())) {
    add((cnt2 == c.size() || v == 1) || (k[cnt1].first > c[cnt2].first) ||
        (cnt1 < k.size() - 1 &&
         k[cnt1].first + k[cnt1 + 1].first > c[cnt2].first));
  }
  cout << x << endl;
  for (int i = 0; i < ans.size(); ++i) {
    cout << ans[i] << ' ';
  }
  cout << endl;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  solve();
  return 0;
}
