#include <bits/stdc++.h>
int main() {
  long long int n, h, a, b;
  std::cin >> n >> h;
  std::vector<std::pair<long long int, long long int>> v;
  for (long long int i = 0; i < n; i++) {
    std::cin >> a >> b;
    v.push_back(std::make_pair(a, b));
  }
  auto amax = (std::max_element(v.begin(), v.end(),
                                [](std::pair<long long int, long long int> a,
                                   std::pair<long long int, long long int> b) {
                                  return a.first < b.first;
                                }))
                  ->first;
  long long int c = 0, bsum = 0;
  for (long long int i = 0; i < n; i++) {
    if (v[i].second > amax) {
      c++;
      bsum += v[i].second;
    }
  }
  if (h > bsum) {
    auto remain = h - bsum;
    std::cout << c + remain / amax + ((remain % amax != 0) ? 1 : 0)
              << std::endl;
  } else {
    std::sort(v.begin(), v.end(),
              [](std::pair<long long int, long long int> a,
                 std::pair<long long int, long long int> b) {
                return a.second > b.second;
              });
    long long int current = 0;
    for (long long int i = 0; i < n; i++) {
      current += v[i].second;
      if (current > h) {
        std::cout << i + 1 << std::endl;
        return 0;
      }
    }
  }
  return 0;
}
