#include <bits/stdc++.h>
int main(void) {
  int N, b_muxnum;
  long long int H;
  long long int attack[2][10001];
  long long int a_max = 0, b_max = 0, ans = 0;
  scanf("%d %llu", &N, &H);
  for (int i = 1; i <= N; i++) {
    scanf("%lld %lld", &attack[0][i], &attack[1][i]);
  }
  for (int i = 1; i <= N; i++) {
    if (attack[0][i] > a_max) {
      a_max = attack[0][i];
    }
  }
  while (H > 0) {
    for (int i = 1; i <= N; i++) {
      if (attack[1][i] > a_max && attack[1][i] > b_max) {
        b_max = attack[1][i];
        b_muxnum = i;
      }
    }
    if (b_max > 0) {
      H -= b_max;
      attack[1][b_muxnum] = 0;
      ans++;
      b_max = 0;
    } else {
      ans = ans + (H / a_max);
      if ((H % a_max) > 0) {
        ans++;
      }
      H = 0;
    }
  }
  printf("%lld", ans);
  return 0;
}
