#include <bits/stdc++.h>
using namespace std;
int main() {
  int N, H;
  cin >> N >> H;
  vector<int> throw_dmg;
  int max_at = 0, at_throw = 0;
  int at, th;
  for (int i = 0; i < N; i++) {
    cin >> at >> th;
    if (at > max_at) {
      max_at = at;
      throw_dmg.push_back(at_throw);
      at_throw = th;
    } else if (at == max_at) {
      if (at_throw > th) {
        throw_dmg.push_back(at_throw);
        at_throw = th;
      } else {
        throw_dmg.push_back(th);
      }
    } else {
      throw_dmg.push_back(th);
    }
  }
  sort(throw_dmg.begin(), throw_dmg.end(), greater<int>());
  long long ans = 0;
  for (int i = 0; i < throw_dmg.size(); i++) {
    if (throw_dmg[i] > at_throw) {
      H -= throw_dmg[i];
      ans++;
    } else
      break;
    if (H <= 0) {
      break;
    }
  }
  if (H <= 0) {
    cout << ans << '\n';
    return 0;
  }
  H -= at_throw;
  ans++;
  if (H <= 0) {
    cout << ans << '\n';
    return 0;
  }
  ans += (H / max_at);
  if (H % max_at != 0) ans++;
  cout << ans << '\n';
}
