#include <bits/stdc++.h>
using namespace std;
struct sword {
  int a;
  int 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() {
  int n, h;
  cin >> n >> h;
  for (int i = 1; i <= n; i++) {
    cin >> kat[i].a >> kat[i].b;
  }
  int ans = 0;
  sort(kat + 1, kat + 1 + n, cmp1);
  if (n >= 2) sort(kat + 2, kat + 2 + 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;
}
