#include <bits/stdc++.h>
using namespace std;
using P = pair<long long, long long>;
signed main() {
  long long n, h;
  cin >> n >> h;
  vector<P> katana(n);
  long long amax = 0;
  long long bmax = 0;
  long long key = 0;
  for (long long i = 0; i < n; i++) {
    long long a, b;
    cin >> a >> b;
    katana[i] = make_pair(b, a);
  }
  sort(katana.begin(), katana.end());
  reverse(katana.begin(), katana.end());
  for (long long i = 0; i < n; i++) {
    if (amax < katana[i].second) {
      amax = katana[i].second;
      bmax = katana[i].first;
      key = i;
    }
  }
  long long count = 0;
  long long ans = 0;
  while (katana[count].first >= bmax) {
    if (count != key) {
      h -= katana[count].first;
      ans++;
    }
    count++;
    if (h <= 0) break;
  }
  if (h > 0) {
    if (h - bmax <= 0) {
      ans++;
    } else {
      if ((h - bmax) % amax == 0) {
        ans += (h - bmax) / amax;
      } else {
        ans += (h - bmax) / amax + 1;
      }
      ans++;
    }
  }
  cout << ans << endl;
}
