#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
  int n;
  ll h;
  cin >> n >> h;
  vector<pair<ll, ll>> katana(n);
  for (int i = 0; i < n; i++) {
    ll a, b;
    cin >> a >> b;
    katana[i] = make_pair(b, a);
  }
  sort(katana.begin(), katana.end());
  ll a_max = 0, itr_a_max = 0;
  for (int i = 0; i < n; i++) {
    if (katana[i].second > a_max) {
      a_max = katana[i].second;
      itr_a_max = i;
    }
  }
  ll cnt = 0;
  int k = 0;
  while (h > 0) {
    int attack;
    if (k < n) {
      if (katana[k].first > a_max) {
        attack = katana[k].first;
      } else {
        attack = a_max;
      }
      h -= attack;
      k++;
      cnt++;
    } else {
      ll div = h / a_max;
      if (h % a_max != 0) {
        div++;
      }
      h -= a_max * div;
      cnt += div;
    }
  }
  cout << cnt << endl;
}
