#include <bits/stdc++.h>
using namespace std;
const long long INF = (1ll << 60);
const long long MOD = (long long)1e9 + 7;
signed main() {
  long long n, h;
  long long a[100000], b[100000];
  cin >> n >> h;
  for (long long i = 0; i < n; i++) {
    cin >> a[i] >> b[i];
  }
  vector<pair<long long, long long>> v, v2;
  for (long long i = 0; i < n; i++) {
    v.push_back(make_pair(a[i], b[i]));
    v2.push_back(make_pair(b[i], a[i]));
  }
  sort(v.begin(), v.end());
  sort(v2.begin(), v2.end());
  long long fmx = v[n - 1].first;
  long long smx = v[n - 1].second;
  bool use = false;
  long long sum = 0;
  long long cnt = 0;
  for (long long i = n - 1; i >= 0; i--) {
    if (v2[i].first == smx && !use) {
      use = true;
      continue;
    }
    if (v2[i].first >= fmx && sum < h) {
      sum += v2[i].first;
      cnt++;
    }
  }
  if (h - sum > 0) {
    long long sub = max(0LL, h - sum);
    long long psub = max(0LL, sub - smx);
    cnt += max(0LL, (psub + fmx - 1) / fmx);
    cnt++;
  }
  cout << cnt << endl;
}
