#include <bits/stdc++.h>
int compar(const void *a, const void *b);
int main() {
  int N, H, a[100001], b[100001], i;
  int a_max, count;
  scanf("%d %d", &N, &H);
  for (i = 0; i < N; i++) {
    scanf("%d %d", &a[i], &b[i]);
  }
  qsort(b, N, sizeof(int), compar);
  a_max = 0;
  for (i = 0; i < N; i++) {
    if (a_max < a[i]) {
      a_max = a[i];
    }
  }
  count = 0;
  for (i = 0; i < N; i++) {
    if (b[i] > a_max) {
      H = H - b[i];
      count++;
    } else {
      break;
    }
  }
  count = count + (H + a_max - 1) / a_max;
  printf("%d\n", count);
  return 0;
}
int compar(const void *a, const void *b) { return *(int *)b - *(int *)a; }
