#include <bits/stdc++.h>
using namespace std;
int inf = 1000000000;
template <typename T>
T GCD(T a, T b) {
  while (max(a, b) % min(a, b)) {
    if (a > b)
      a = a % b;
    else
      b = b % a;
  }
  return min(a, b);
}
template <typename T>
T LCM(T a, T b) {
  return a / GCD(a, b) * b;
}
int main() {
  long long n, h, a[100010], b[100010], amax = 0, amaxi, ans = 0;
  cin >> n >> h;
  for (int i = 0; i < n; i++) {
    cin >> a[i] >> b[i];
    if (amax < a[i]) {
      amax = a[i];
      amaxi = i;
    }
  }
  for (int i = 0; i < n; i++) {
    if (amax <= b[i] && i != amaxi) {
      h -= b[i];
      ans++;
      if (h <= 0) {
        cout << ans << endl;
        return 0;
      }
    }
  }
  if (h > b[amaxi]) {
    ans += (h - b[amaxi] + a[amaxi] - 1) / a[amaxi] + 1;
    cout << ans << endl;
  } else
    cout << ans + 1 << endl;
  return 0;
}
