#include <bits/stdc++.h>
using namespace std;
using pii = pair<int, int>;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n, h;
  cin >> n >> h;
  vector<pii> v(n);
  for (int i = 0; i < (n); ++i) cin >> v[i].first >> v[i].second;
  sort((v).begin(), (v).end());
  int maxv = v[n - 1].first;
  sort((v).begin(), (v).end(),
       [](const pii &a, const pii &b) { return a.second > b.second; });
  auto up = upper_bound((v).begin(), (v).end(), maxv,
                        [](const int n, const pii &a) { return n > a.second; });
  v.erase(up, v.end());
  int cnt = 0, pos = 0;
  while (h > 0) {
    if (pos >= (int)v.size()) {
      cnt += ceil(h / maxv);
      break;
    } else if (maxv > v[pos].second) {
      h -= maxv;
    } else {
      h -= v[pos].second;
      pos++;
    }
    cnt++;
  }
  cout << cnt << endl;
  return 0;
}
