#include <bits/stdc++.h>
using namespace std;
int main() {
  int N, H;
  cin >> N >> H;
  vector<int> a(N);
  vector<int> b(N);
  for (int i = 0; i < N; i++) {
    cin >> a[i] >> b[i];
  }
  int max_a = *max_element(a.begin(), a.end());
  vector<int> e_b;
  for (int i = 0; i < N; i++) {
    if (b[i] >= max_a) {
      e_b.push_back(b[i]);
    }
  }
  int count = 0;
  int res = H - accumulate(e_b.begin(), e_b.end(), 0);
  if (res > 0) {
    count = e_b.size() + (res + max_a - 1) / max_a;
  } else {
    sort(e_b.begin(), e_b.end(), greater<int>());
    int pos = 0;
    while (H > 0) {
      H -= e_b[pos];
      count++;
      pos++;
    }
  }
  cout << count << endl;
  return 0;
}
