#include <bits/stdc++.h>
int cmp(const void *a, const void *b) {
  if (*(long long int *)a > *(long long int *)b) return 0;
  return 1;
}
int main(void) {
  int n, i, flag = 1;
  long long int h, tmp, ans = 0;
  scanf("%d %lld", &n, &h);
  long long int a[n], b[n], c[n];
  for (i = 0; i < n; i++) scanf("%lld %lld", &a[i], &b[i]);
  for (i = 0; i < n; i++) c[i] = a[i];
  qsort(c, n, sizeof(long long int), cmp);
  for (i = 0; i < n; i++) {
    if (a[i] == c[0]) {
      tmp = b[i];
      break;
    }
  }
  qsort(b, n, sizeof(long long int), cmp);
  for (i = 0; i < n; i++) {
    if (b[i] > c[0]) {
      if (flag && b[i] == tmp) {
        flag = 0;
      } else {
        h -= b[i];
        ans++;
        if (h <= 0) {
          printf("%lld\n", ans);
          return 0;
        }
      }
    } else
      break;
  }
  h -= tmp;
  ans++;
  if (h <= 0) {
    printf("%lld\n", ans);
    return 0;
  }
  if (h % c[0] == 0)
    ans += h / c[0];
  else
    ans += h / c[0] + 1;
  printf("%lld\n", ans);
  return 0;
}
