#include <bits/stdc++.h>
using namespace std;
using P = pair<int, int>;
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
int main() {
  int n, h;
  cin >> n >> h;
  vector<P> k(n);
  for (int i = 0; i < (int)(n); i++) cin >> k[i].second >> k[i].first;
  sort((k).rbegin(), (k).rend());
  int maxD = 0;
  for (int i = 0; i < (int)(n); i++) maxD = max(maxD, k[i].second);
  int ans = 0;
  int i = 0;
  while (i < n) {
    if (k[i].first > maxD) {
      ans++;
      h -= k[i].first;
    }
    if (h < 0) break;
    if (k[i].first <= maxD || i == n - 1) {
      ans += h / maxD;
      if (h % maxD != 0) ans++;
      break;
    }
    i++;
  }
  cout << ans << endl;
  return 0;
}
