#include <bits/stdc++.h>
using namespace std;
vector<int> _prime;
vector<int> build_prime_table(int max) {
  vector<int> table = vector<int>(max + 1, -1);
  table[0] = 0;
  table[1] = 0;
  table[2] = 1;
  for (size_t i = 3; i <= max; i++) {
    if (i % 2 == 0) {
      table[i] = 0;
      continue;
    }
    if (table[i] != -1) continue;
    table[i] = 1;
    for (size_t j = i + i; j <= max; j += i) {
      table[j] = 0;
    }
  }
  return table;
}
int main() {
  int N, H;
  cin >> N >> H;
  auto as = vector<int>(N);
  auto bs = vector<int>(N);
  for (size_t i = 0; i < N; i++) cin >> as[i] >> bs[i];
  sort(as.begin(), as.end(), greater<int>());
  sort(bs.begin(), bs.end(), greater<int>());
  for (size_t i = 0; i < N; i++) {
    H -= bs[i];
    if (H <= 0) {
      cout << i + 1 << endl;
      return 0;
    }
  }
  int count = N;
  count += H %= as[0] == 0 ? H / as[0] : H / as[0] + 1;
  cout << count << endl;
  return 0;
}
