#include <bits/stdc++.h>
using namespace std;
int N, M, T;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int i, j, k;
  cin >> N >> M;
  vector<pair<int, int> > v;
  multiset<int> s;
  for (i = 1; i <= N; i++) {
    cin >> j >> k;
    v.push_back((make_pair((-k), (j))));
    s.insert(-j);
  }
  sort((v).begin(), (v).end());
  int Mc = M;
  for (i = 0; i < N; i++) {
    k = *(s.begin());
    k = -k;
    M += v[i].first;
    Mc = min(Mc, max((M + k - 1) / k, 0) + i + 1);
    if (M < 0) break;
    s.erase(s.find(-v[i].second));
  }
  cout << Mc << '\n';
  return 0;
}
