#include <bits/stdc++.h>
using namespace std;
int N, H;
int max_a;
int b_of_max_a;
int idx_of_max_a;
vector<int> a, b;
vector<int> use_b;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> N >> H;
  a.resize(N);
  b.resize(N);
  for (int i = 0; i < N; i++) {
    cin >> a[i] >> b[i];
    if (max_a < a[i]) {
      max_a = a[i];
      b_of_max_a = b[i];
      idx_of_max_a = i;
    }
  }
  for (int i = 0; i < N; i++) {
    if (i == idx_of_max_a) {
      continue;
    }
    if (max_a < b[i]) {
      use_b.push_back(b[i]);
    }
  }
  sort(use_b.begin(), use_b.end(), greater<int>());
  int cnt = 0;
  for (int i = 0; i < use_b.size(); i++) {
    H -= use_b[i];
    cnt++;
    if (H <= 0) {
      cout << cnt << endl;
      return 0;
    }
  }
  H -= b_of_max_a;
  cnt++;
  if (H > 0) {
    if (H % max_a == 0) {
      cnt += (H / max_a);
    } else {
      cnt += (H / max_a) + 1;
    }
  }
  cout << cnt << endl;
  return 0;
}
