#include <bits/stdc++.h>
using namespace std;
long long n, h, a, b, cnt, mx;
vector<pair<int, int> > damage;
struct sorter {
  bool operator()(const pair<int, int>& a, const pair<int, int>& b) {
    return a.second > b.second;
  }
};
int main() {
  cin >> n >> h;
  for (int i = 0; i < n; ++i) {
    cin >> a >> b;
    damage.push_back(make_pair(a, b));
    if (a > mx) mx = a;
  }
  sort(damage.begin(), damage.end(), sorter());
  cnt = 0;
  for (auto x : damage) {
    if (x.second < mx) continue;
    if (h < 0) {
      cout << cnt << endl;
      return 0;
    }
    h -= x.second;
    cnt++;
  }
  if (h < 0) {
    cout << cnt << endl;
    return 0;
  }
  cnt += h / mx;
  if (h % mx != 0) cnt++;
  cout << cnt << endl;
  return 0;
}
