#include <bits/stdc++.h>
using namespace std;
const double esp = 0.00000001;
const int N = 60;
const int PSize = 100;
const double PCross = 0.3;
const double PMuta = 0.05;
int a[200010], t[200010];
int n, T;
vector<int> res;
bool cmp(pair<int, int> a, pair<int, int> b) { return a.second < b.second; }
bool ok(int k, vector<pair<int, int> > e) {
  if (k > e.size()) return false;
  int ans = 0;
  sort(e.begin(), e.end(), cmp);
  for (int i = 0; i < k; i++) ans += e[i].second;
  if (ans > T) return false;
  res.clear();
  for (int i = 0; i < k; i++) res.push_back(e[i].first);
  return true;
}
int main() {
  cin >> n >> T;
  for (int i = 0; i < n; i++) cin >> a[i] >> t[i];
  int l = 0, r = n;
  while (l < r) {
    int mid = (l + r + 1) >> 1;
    vector<pair<int, int> > e;
    for (int i = 0; i < n; i++)
      if (a[i] >= mid) e.push_back(make_pair(i, t[i]));
    if (ok(mid, e))
      l = mid;
    else
      r = mid - 1;
  }
  cout << l << endl << res.size() << endl;
  for (int i = 0; i < res.size(); i++) {
    if (i) cout << " ";
    cout << res[i] + 1;
  }
  cout << endl;
  return 0;
}
