#include <bits/stdc++.h>
int sort(const void *a, const void *b) { return *(int *)b - *(int *)a; }
int a[100000] = {0};
int b[100000] = {0};
int main() {
  int n, h;
  int b_sum = 0, flg = 0;
  int ans = 0;
  int a_max = 0, key_a = 0;
  scanf("%d %d", &n, &h);
  for (int i = 0; i < n; i++) {
    scanf("%d %d", &a[i], &b[i]);
    if (a_max < a[i]) {
      a_max = a[i];
      key_a = i;
    }
    if (!flg) b_sum += b[i];
    if (b_sum >= h) flg = 1;
  }
  if (flg) {
    qsort(b, n, sizeof(b[0]), sort);
    b_sum = 0;
    for (int i = 0; i < n; i++) {
      b_sum += b[i];
      if (b_sum >= h) {
        ans = i + 1;
        printf("%d\n", ans);
        return 0;
      }
    }
  }
  int amb = b[key_a];
  b[key_a] = 0;
  qsort(b, n, sizeof(b[0]), sort);
  int rest_h = h;
  for (int i = 0; i < n; i++) {
    if (a_max < b[i]) {
      rest_h -= b[i];
      ans++;
    } else
      break;
  }
  rest_h -= amb;
  ans++;
  if ((rest_h % a_max) == 0)
    ans += (rest_h / a_max);
  else
    ans += (rest_h / a_max) + 1;
  printf("%d\n", ans);
  return 0;
}
