#include <bits/stdc++.h>
using namespace std;
int main() {
  int N, H, a, b;
  vector<pair<int, int>> ab;
  cin >> N >> H;
  for (int i = 0; i < (N); i++) {
    cin >> a >> b;
    ab.push_back(pair<int, int>(a, b));
  }
  pair<int, int> last = pair<int, int>(0, 1 << 30);
  for (int i = 0; i < (N); i++) {
    if (ab[i].first > last.first ||
        (ab[i].first == last.first && ab[i].second < last.second))
      last = ab[i];
  }
  sort((ab).begin(), (ab).end(),
       [](const pair<int, int>& x, const pair<int, int>& y) {
         return x.second > y.second;
       });
  int ans = 0;
  for (int i = 0; i < (N); i++) {
    if (H <= last.second) {
      cout << ans + 1 << endl;
      return 0;
    }
    if (ab[i].second > last.first) {
      if (ab[i] == last) continue;
      H -= ab[i].second;
      ans++;
    } else
      break;
  }
  ans += ceil((H - last.second) / (double)last.first);
  cout << ans + 1 << endl;
  return 0;
}
