#include <bits/stdc++.h>
using namespace std;
long long N, H;
vector<long long> a(100001, 0);
vector<long long> b(100001, 0);
int main(void) {
  scanf("%lld %lld", &N, &H);
  for (int i = 0; i < N; ++i) scanf("%lld %lld", &a[i], &b[i]);
  sort(b.begin(), b.begin(), greater<long long>());
  long long amx = *max_element(a.begin(), a.begin() + N);
  vector<long long> v;
  long long sum = 0;
  for (int i = 0; i < N; ++i) {
    if (b[i] > amx) sum += b[i], v.push_back(sum);
  }
  if (v.size()) {
    if (H - v.back() <= 0) {
      long long cnt = 0;
      for (int i = v.size() - 2; i >= 0; --i)
        if (H - v[i] <= 0) ++cnt;
      printf("%lld\n", (long long)v.size() - cnt);
    } else {
      long long cnt = ((H - v.back()) % amx) ? ((H - v.back()) / amx) + 1
                                             : (H - v.back()) / amx;
      printf("%lld\n", (long long)v.size() + cnt);
    }
  } else {
    long long cnt = (H % amx) ? (H / amx) + 1 : H / amx;
    printf("%lld\n", cnt);
  }
  return 0;
}
