#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, h;
  cin >> n >> h;
  vector<int> a, b;
  int a_max = 0;
  int a_idx = -1;
  for (int i = 0; i < n; i++) {
    int at, bt;
    cin >> at >> bt;
    a.push_back(at);
    b.push_back(bt);
    if (a[i] > a_max) {
      a_max = a[i];
      a_idx = i;
    } else if (a[i] == a_max && b[i] > b[a_idx]) {
      a_max = a[i];
      a_idx = i;
    }
  }
  int count = 0;
  int b_sum = 0;
  for (int i = 0; i < n; i++) {
    if (b[i] > a_max) {
      b_sum += b[i];
      count++;
    }
  }
  if ((h - b_sum) / a_max > 0) {
    count += (h - b_sum) / a_max;
    if ((h - b_sum) % a_max != 0) count++;
    cout << count << endl;
  } else if ((h - b_sum) / a_max == 0) {
    cout << count << endl;
  } else if ((h - b_sum) < 0) {
    count = 0;
    sort(b.begin(), b.end(), greater<int>());
    for (int i = 0; i < n; i++) {
      h -= b[i];
      count++;
      if (h <= 0) break;
    }
    cout << count << endl;
  }
  return 0;
}
