#include <bits/stdc++.h>
int dsc(const void *a, const void *b) { return *(int *)b - *(int *)a; }
int main(int argc, char *argv[]) {
  int n, h, a, amax = 0, b[100000];
  scanf("%d %d", &n, &h);
  for (int i = 0; i < n; i++) {
    scanf("%d %d", &a, &b[i]);
    amax = ((a) > (amax) ? (a) : (amax));
  }
  qsort(b, n, sizeof(int), dsc);
  int k = 0, ans = 0;
  while (h > 0) {
    if (b[k] > amax) {
      h -= b[k];
      ans++;
      k++;
    } else {
      ans += (h - 1) / amax + 1;
      break;
    }
  }
  printf("%d\n", ans);
  return 0;
}
