#include <bits/stdc++.h>
int compare_int(const void *a, const void *b) { return *(int *)a - *(int *)b; }
int main() {
  int N, H, flag;
  scanf("%d%d", &N, &H);
  int a[100000];
  int b[100000];
  int i, j, k;
  long long int sum, tmp;
  for (k = 0; k <= N - 1; k++) {
    scanf("%d%d", &a[k], &b[k]);
  }
  sum = 0;
  tmp = 0;
  j = 0;
  flag = 0;
  qsort(a, N, sizeof(int), compare_int);
  qsort(b, N, sizeof(int), compare_int);
  for (i = N - 1; i >= 0; i--) {
    if (b[i] >= a[N - 1]) {
      sum += b[i];
      j++;
      if (sum >= H) {
        printf("%d", j);
        break;
      }
    }
  }
  for (i = 1; i <= N - 1; i++) {
    sum += a[N - 1];
    if (sum >= H) {
      printf("%d", j + i);
      break;
    }
  }
}
