#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;
  using sword = pair<int, int>;
  auto swords = vector<sword>(N);
  int a, b;
  for (size_t i = 0; i < N; i++) {
    cin >> a >> b;
    swords[i] = {a, b};
  }
  sort(swords.begin(), swords.end(), [](sword a, sword b) {
    if (a.second == b.second)
      return a.first > b.first;
    else
      return a.second > b.second;
  });
  for (size_t i = 0; i < N; i++) {
    H -= swords[i].second;
    if (H <= 0) {
      cout << i + 1 << endl;
      return 0;
    }
  }
  int count = N;
  count += H / swords[0].first;
  if (H % swords[0].first != 0) ++count;
  cout << count << endl;
}
