#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, h;
  cin >> n >> h;
  vector<int> a(n), b(n);
  vector<pair<int, int>> c(n);
  for (int(i) = (0); (i) <= (n - 1); ++(i)) {
    cin >> a[i] >> b[i];
    c[i] = {a[i], b[i] * -1};
  }
  sort(a.begin(), a.end(), greater<int>());
  sort(b.begin(), b.end(), greater<int>());
  sort(c.begin(), c.end(), greater<pair<int, int>>());
  int aa = a[0];
  int ba = c[0].second * -1;
  vector<int> d;
  int ans = 0;
  int i = 0;
  int cnt = 0;
  bool dup = false;
  while (0 < h && i < n && aa < b[i]) {
    if (b[i] != ba || dup) {
      h -= b[i];
      ++cnt;
    }
    if (b[i] == ba) dup = true;
    ++i;
  }
  if (h < 0)
    cout << cnt << endl;
  else {
    if (h - ba < 0)
      ans = cnt + 1;
    else if (aa < ba) {
      ans = cnt + 1 + (h - ba + aa - 1) / aa;
    } else {
      ans = cnt + (h + aa - 1) / aa;
    }
    cout << ans << endl;
  }
}
