#include <bits/stdc++.h>
int compare_int(const void *a, const void *b) { return *(int *)b - *(int *)a; }
int main(void) {
  int n, h;
  int a[100010];
  int b[100010];
  int amax = 0;
  int maxnumber;
  int count;
  int i;
  int flag = 0;
  scanf("%d %d", &n, &h);
  for (i = 0; i < n; i++) {
    scanf("%d %d", &a[i], &b[i]);
  }
  for (i = 0; i < n; i++) {
    if (amax < a[i]) {
      amax = a[i];
      maxnumber = i;
    }
  }
  qsort(b, n, sizeof(int), compare_int);
  i = 0;
  while (flag == 0) {
    if (b[i] > amax) {
      h = h - b[i];
      count++;
      i++;
    } else {
      flag = 1;
    }
  }
  if (h > 0) {
    count = count + (h + amax - 1) / amax;
  }
  printf("%d\n", count);
  return 0;
}
