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