#include <bits/stdc++.h>
int main() {
  int n, h;
  std::cin >> n >> h;
  std::vector<std::pair<int, int>> damages(n);
  int Ma = -1;
  int num_available_throw = 0;
  for (auto& damage : damages) {
    std::cin >> damage.first >> damage.second;
    Ma = std::max(damage.first, Ma);
  }
  for (auto& damage : damages) {
    if (damage.second >= Ma) {
      num_available_throw++;
      h -= damage.second;
      if (h <= 0) {
        std::cout << num_available_throw << "\n";
        return 0;
      }
    }
  }
  std::cout << num_available_throw + (h - h % Ma) / Ma + ((h % Ma > 0) ? 1 : 0)
            << "\n";
  return 0;
}
