#include <bits/stdc++.h>
int main() {
  long long int n, h, i, j;
  scanf("%lld %lld", &n, &h);
  long long int a[n];
  long long int b[n];
  for (i = 0; i < n; i++) {
    scanf("%lld %lld", &a[i], &b[i]);
  }
  long long int amax = 0;
  for (i = 0; i < n; i++) {
    if (amax < a[i]) {
      amax = a[i];
    }
  }
  long long int jtemp;
  long long int bid = n - 1;
  long long int maxt;
  for (i = 0; i < n; i++) {
    maxt = b[i];
    jtemp = i;
    for (j = i + 1; j < n; j++) {
      if (b[j] > maxt) {
        jtemp = j;
        maxt = b[j];
      }
    }
    b[jtemp] = b[i];
    b[i] = maxt;
    if (maxt < amax) {
      bid = i - 1;
      goto LABEL3;
    }
  }
LABEL3:
  long long int dam = h;
  long long int kaisu = 0;
  for (i = 0; i < bid + 1; i++) {
    dam -= b[i];
    kaisu++;
    if (dam < 1) {
      goto LABEL;
    }
  }
LABEL2:
  kaisu += (dam - 1) / amax + 1;
LABEL:
  printf("%lld\n", kaisu);
  return 0;
}
