#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, h;
  cin >> n >> h;
  vector<pair<int, int>> vp;
  map<int, int> m;
  for (int i = 0; i < n; i++) {
    int a, b;
    cin >> a >> b;
    vp.emplace_back(b, a);
    m[a]++;
  }
  sort(vp.begin(), vp.end());
  int res = 0x3f3f3f3f;
  int r = 0;
  for (int i = n - 1; i >= 0; i--) {
    int max_a = m.rbegin()->first;
    h -= vp[i].first;
    r++;
    if (h <= 0) {
      res = min(res, r);
      break;
    }
    res = min(res, r + h / max_a + (h % max_a > 0 ? 1 : 0));
    m[vp[i].second]--;
    if (m[vp[i].second] == 0) m.erase(vp[i].second);
  }
  cout << res << endl;
}
