#include <bits/stdc++.h>
using namespace std;
int main() {
  int N, H, a, b, MAX_A = 0;
  int sum = 0, ans = 1;
  vector<pair<int, int> > katanas_a, katanas_b;
  cin >> N >> H;
  for (int i = 0; i < N; i++) {
    cin >> a >> b;
    if (MAX_A < a) MAX_A = a;
    katanas_a.push_back(make_pair(a, b));
  }
  vector<pair<int, int> >::iterator it = katanas_a.begin();
  while (it != katanas_a.end()) {
    if (it->second <= MAX_A) {
      it = katanas_a.erase(it);
    } else
      ++it;
  }
  katanas_b = katanas_a;
  for (vector<pair<int, int> >::iterator it = katanas_b.begin();
       it != katanas_b.end(); ++it) {
    it->first = it->second;
    sum += it->second;
  }
  sort(katanas_a.begin(), katanas_a.end(), greater<pair<int, int> >());
  sort(katanas_b.begin(), katanas_b.end(), greater<pair<int, int> >());
  if (H <= sum) {
    sum = 0;
    for (vector<pair<int, int> >::iterator it = katanas_b.begin();
         it != katanas_b.end(); ++it) {
      sum += it->first;
      if (H <= sum) break;
      ans++;
    }
  } else {
    ans = katanas_b.size() +
          (H - sum + katanas_a[0].first) / katanas_a[0].first - 1;
  }
  cout << ans << endl;
  return 0;
}
