#include <bits/stdc++.h>
using namespace std;
struct Katana {
  int64_t basic;
  int64_t extra;
  bool operator<(const Katana &other) const { return extra > other.extra; }
};
int main() {
  int64_t n, health;
  cin >> n >> health;
  vector<Katana> katanas(n);
  int64_t max_basic = 0;
  for (auto &k : katanas) {
    cin >> k.basic >> k.extra;
    max_basic = max(max_basic, k.basic);
  }
  sort(katanas.begin(), katanas.end());
  int64_t res = (health + max_basic - 1) / max_basic;
  int64_t extra = 0;
  for (int64_t i = 0; i < n; i += 1) {
    extra += katanas[i].extra;
    auto left = health - extra;
    res = min(res, i + 1 + (left + max_basic - 1) / max_basic);
  }
  cout << res << "\n";
  return 0;
}
