#include <bits/stdc++.h>
using namespace std;
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
int main() {
  int n, h;
  cin >> n >> h;
  vector<int> a(n), b(n);
  for (int i = int(0); i < int(n); ++i) cin >> a[i] >> b[i];
  sort(a.begin(), a.end());
  sort(b.begin(), b.end());
  int ans = 0;
  auto it = upper_bound(b.begin(), b.end(), a[n - 1]);
  int ma = it - b.begin();
  for (int i = int(0); i < int(n); ++i) {
    int j = n - 1 - i;
    if (j < ma) break;
    h -= b[j];
    ++ans;
  }
  if (h > 0) {
    ans += (h + a[n - 1] - 1) / a[n - 1];
  }
  cout << ans << endl;
}
