#include <bits/stdc++.h>
using namespace std;
using P = pair<long long, long long>;
using PQ = priority_queue<P, vector<P>, greater<P>>;
int main() {
  long long n, h;
  cin >> n >> h;
  P a[n], b[n];
  for (long long i = 0; i < n; i++) {
    cin >> a[i].first >> b[i].first;
    a[i].second = i;
    b[i].second = i;
  }
  sort(a, a + n, greater<P>());
  sort(b, b + n, greater<P>());
  long long cnt = 0;
  for (long long i = 0; i < n; i++) {
    if (a[0].second != b[i].second && a[0].first <= b[i].first) {
      h -= b[i].first;
      cnt++;
    }
    if (h <= 0) {
      break;
    }
  }
  if (h - b[0].first > 0)
    cnt += ceil((double)(h - b[0].first) / (double)a[0].first) + 1;
  else
    cnt += 1;
  cout << cnt << endl;
  return 0;
}
