#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
  ll N, H;
  cin >> N >> H;
  vector<ll> a(N), b(N);
  for (ll i = 0; i < N; ++i) {
    cin >> a[i] >> b[i];
  }
  ll max_a = *max_element(a.begin(), a.end());
  sort(b.begin(), b.end());
  auto itr = lower_bound(b.begin(), b.end(), max_a);
  ll b_i = b.size() - 1;
  ll ans = 0;
  while (H > 0) {
    if (b_i <= itr - b.begin()) {
      break;
    }
    H -= b[b_i];
    --b_i;
    ++ans;
  }
  if (H > 0) {
    cout << ans + int(ceil(H / max_a)) << endl;
  } else {
    cout << ans << endl;
  }
  return 0;
}
