#include <bits/stdc++.h>
using ll = long long;
using itn = int;
using namespace std;
int GCD(int a, int b) { return b ? GCD(b, a % b) : a; }
int main() {
  ll N, H;
  cin >> N >> H;
  vector<ll> a(N), b(N);
  vector<ll> c(N + 1, 0);
  for (int i = 0; i < int(N); ++i) cin >> a.at(i) >> b.at(i);
  sort(a.begin(), a.end(), greater<ll>());
  sort(b.begin(), b.end(), greater<ll>());
  for (int i = 0; i < int(N); ++i) c.at(i + 1) = c.at(i) + b.at(i);
  ll ans = ceil(H / a.at(0));
  for (int i = 0; i < int(N + 1); ++i) {
    ll tmp = H - c.at(i);
    ll cnt = ceill((double)tmp / a.at(0));
    ans = min(ans, i + cnt);
  }
  cout << ans << endl;
}
