#include <bits/stdc++.h>
int fun(long long a, std::vector<long long> b) {
  int ans = 0;
  for (int i = 0; i < b.size(); ++i) {
    if (a > b[i]) {
      break;
    }
    ans += 1;
  }
  return ans;
}
int main() {
  int n, ind;
  long long h, a = 0, ai, bi, ans;
  std::vector<long long> b;
  scanf("%d %lld", &n, &h);
  for (int i = 0; i < n; ++i) {
    scanf("%lld %lld", &ai, &bi);
    if (ai > a) {
      a = ai;
    }
    if (bi > a) {
      b.push_back(bi);
    }
  }
  std::sort(b.begin(), b.end(), std::greater<int>());
  ind = fun(a, b);
  h -= std::accumulate(b.begin(), b.begin() + ind, (long long)0);
  ans = h / a + (h % a > 0) + ind;
  printf("%lld", ans);
  return 0;
}
