#include <bits/stdc++.h>
void sort(int ar[], int l, int r);
int compare(const void *a, const void *b) { return *(int *)b - *(int *)a; }
int main(void) {
  int n, h, i, j, tmp, max = 0, cnt = 0;
  scanf("%d %d", &n, &h);
  int a[n], b[n];
  for (i = 0; i < n; i++) {
    scanf("%d %d", &a[i], &b[i]);
    if (max < a[i]) {
      max = a[i];
    }
  }
  qsort(b, n, sizeof(int), compare);
  i = 0;
  while (h > 0 && i < n) {
    if (max >= b[i]) {
      h -= max;
    } else {
      h -= b[i];
      i++;
    }
    cnt++;
  }
  printf("%d", cnt);
  return 0;
}
