#include <bits/stdc++.h>
using namespace std;
int main() {
  int N;
  long H;
  cin >> N >> H;
  vector<long> A(N, 0);
  vector<long> B(N, 0);
  for (int n = 0; n < N; ++n) cin >> A[n] >> B[n];
  sort(A.begin(), A.end(), [](long a, long b) { return b < a; });
  sort(B.begin(), B.end(), [](long a, long b) { return b < a; });
  for (int n = 0; n < N; ++n) {
    if (B[n] < A[0]) {
      B.resize(n);
      break;
    }
  }
  int attacks = 0;
  for (auto b : B) {
    ++attacks;
    H -= b;
    if (H <= 0) break;
  }
  attacks += (H / A[0]) + (H % A[0] > 0 ? 1 : 0);
  cout << attacks << endl;
  return 0;
}
