#include <bits/stdc++.h>
int main() {
  long long int n, h;
  scanf("%lld %lld", &n, &h);
  long long int i;
  long long int weild[n], throwing[n];
  for (i = 0; i < n; i++) {
    scanf("%lld %lld", &weild[i], &throwing[i]);
  }
  long long int maxweild = 0, maxthrow = 0, maxindex = -1;
  for (i = 0; i < n; i++) {
    if (weild[i] > maxweild) maxweild = weild[i];
  }
  int flag = 0;
  for (i = 0; i < n; i++) {
    if (throwing[i] > maxthrow && throwing[i] > maxweild) {
      flag = 1;
      maxthrow = throwing[i];
      maxindex = i;
    }
  }
  long long int attack = 0;
  while (h > 0) {
    if (flag) {
      attack++;
      h -= maxthrow;
      throwing[maxindex] = 0;
      maxthrow = 0;
      flag = 0;
      for (i = 0; i < n; i++) {
        if (throwing[i] > maxthrow && throwing[i] >= maxweild) {
          flag = 1;
          maxthrow = throwing[i];
          maxindex = i;
        }
      }
    } else {
      long long int temp = h / maxweild;
      attack += temp;
      h = 0;
      if (h % maxweild != 0) {
        attack++;
      }
    }
  }
  printf("%lld", attack);
  return 0;
}
