#include <bits/stdc++.h>
using namespace std;
int main() {
  int N, H;
  cin >> N >> H;
  vector<pair<int, int>> K(N);
  int MA = 0, MB = 0;
  for (int i = 0; i < N; i++) {
    int a, b;
    cin >> a >> b;
    MA = max(a, MA);
    K[i] = make_pair(b, a);
  }
  for (int i = 0; i < N; i++)
    if (K[i].second == MA) MB = max(K[i].first, MB);
  sort(K.rbegin(), K.rend());
  long long cnt = 0;
  if (K.size() == 1) {
    cout << (H - MB + (MA - 1)) / MA + 1 << endl;
  }
  bool flag = true;
  for (int i = 0; i < N; i++) {
    if (H <= 0) break;
    if (MA < K[i].first) {
      if (H <= MB) {
        cnt++;
        cout << cnt << endl;
        return 0;
      }
      if (flag && K[i].second == MA && K[i].first == MB) {
        continue;
        flag = false;
      } else {
        H -= K[i].first;
        cnt++;
      }
    } else {
      cnt += (H - MB + (MA - 1)) / MA + 1;
      cout << cnt << endl;
      return 0;
    }
  }
}
