#include <bits/stdc++.h>
using namespace std;
struct sword {
  long long a;
  long long b;
} kat[200005];
int cmp1(sword x, sword y) {
  if (x.a > y.a)
    return 1;
  else if (x.a == y.a && x.b > y.b)
    return 1;
  return 0;
}
int cmp2(sword x, sword y) {
  if (x.b > y.b)
    return 1;
  else if (x.b == y.b && x.a > y.a)
    return 1;
  return 0;
}
int main() {
  long long n, h;
  cin >> n >> h;
  for (int i = 1; i <= n; i++) {
    cin >> kat[i].a >> kat[i].b;
  }
  long long ans = 0;
  sort(kat + 1, kat + 1 + n, cmp2);
  if (kat[1].b >= h) {
    ans = 1;
  } else {
    sort(kat + 1, kat + 1 + n, cmp1);
    sort(kat + 2, kat + 1 + n, cmp2);
    for (int i = 2; i <= n && kat[i].b > kat[1].a; i++) {
      h -= kat[i].b;
      ans++;
      if (h <= 0) break;
    }
    if (h > 0) {
      if (kat[1].a < kat[1].b) {
        ans++;
        h -= kat[1].b;
      }
      if (h > 0) {
        ans += h / kat[1].a;
        h %= kat[1].a;
        if (h > 0) ans++;
      }
    }
  }
  cout << ans;
}
