#include <bits/stdc++.h>
using namespace std;
long long a[100005];
long long b[100005];
int main() {
  long long n, h;
  scanf("%lld%lld", &n, &h);
  for (long long i = 1; i <= n; i++) scanf("%lld%lld", &a[i], &b[i]);
  long long maxi;
  long long maxval = 0;
  for (long long i = 1; i <= n; i++)
    if (maxval < a[i]) {
      maxi = i;
      maxval = a[i];
    }
  long long cnt = 0;
  long long maxa = a[maxi];
  long long maxb = b[maxi];
  a[maxi] = 0;
  b[maxi] = 0;
  sort(b + 1, b + 1 + n);
  reverse(b + 1, b + 1 + n);
  for (long long i = 1; i < n; i++) {
    if (b[i] > maxa) {
      h -= b[i];
      cnt++;
    }
    if (h <= 0) break;
  }
  if (h > maxb) {
    long long temp = (h - maxb + maxa - 1) / maxa;
    h -= temp * maxa;
    cnt += temp;
  }
  if (h > 0) cnt++;
  cout << max(0ll, cnt) << endl;
  return 0;
}
