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