#include <bits/stdc++.h>
int main() {
  int N, H, a_max = 0, count = 0, num = 0, fin = 0;
  scanf("%d %d", &N, &H);
  int a[N], b[N], d[N];
  for (int i = 0; i < N; i++) {
    scanf("%d %d", &a[i], &b[i]);
    if (a_max < a[i]) {
      a_max = a[i];
    }
  }
  for (int i = 0; i < N; i++) {
    if (b[i] <= a_max) {
    } else {
      d[count] = b[i];
      count++;
    }
  }
  int k_max = 0, K, buff, c[count];
  for (int i = 0; i < count; i++) {
    for (int k = i + 1; k < count; k++) {
      if (d[i] > d[k]) {
        buff = d[i];
        d[i] = k_max;
        d[K] = buff;
      }
    }
  }
  int damage = 0;
  for (int i = 0; i < count; i++) {
    num++;
    damage = damage + d[i];
    if (damage >= H) {
      fin = 1;
      break;
    }
  }
  if (fin = 1) {
    H = H - damage;
    num = num + (H + a_max - 1) / a_max;
  }
  printf("%d", num);
}
