#include <bits/stdc++.h>
long long read() {
  long long tmp = 0;
  char f = 1, c = getchar();
  while (c < '0' || '9' < c) {
    if (c == '-') f = -1;
    c = getchar();
  }
  while ('0' <= c && c <= '9') {
    tmp = tmp * 10 + c - '0';
    c = getchar();
  }
  return tmp * f;
}
using namespace std;
long long a[100010], b[100010];
int n, h;
int main() {
  n = read();
  h = read();
  for (int i = 1; i <= n; i++) a[i] = read(), b[i] = read();
  long long mxa = 0;
  for (int i = 1; i <= n; i++) mxa = (mxa > a[i] ? mxa : a[i]);
  sort(b + 1, b + n + 1);
  long long ans = 0;
  for (int i = n; i; i--) {
    if (b[i] > mxa) ++ans, h -= b[i];
    if (h < 0) {
      printf("%lld\n", ans);
      return 0;
    }
  }
  ans += h / mxa;
  if (h % mxa) ++ans;
  printf("%lld\n", ans);
  return 0;
}
