#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using p_int = pair<int, int>;
int main() {
  cin.tie(nullptr);
  ios::sync_with_stdio(false);
  int n, h;
  cin >> n >> h;
  p_int swords[n];
  int a, b;
  for (int i = 0; i < n; ++i) {
    cin >> a >> b;
    swords[i] = make_pair(b, a);
  }
  auto rev_comp = [](p_int p, p_int q) { return p.first >= q.first; };
  sort(swords, swords + n, rev_comp);
  ll sum[n];
  sum[0] = swords[0].first;
  for (int i = 1; i < n; ++i) {
    sum[i] = sum[i - 1] + swords[i].first;
  }
  auto count = int(lower_bound(sum, sum + n, h) - sum) + 1;
  if (count > n) count = (int)1e9;
  for (int i = 0; i < n; ++i) {
    p_int a_val = make_pair(swords[i].second, 0);
    auto idx = int(lower_bound(swords, swords + n, a_val, rev_comp) - swords);
    if (idx >= n) idx = (int)1e9;
    if (idx < n && h - sum[idx]) {
      auto tmp_count = int(idx + 1 + ceil((h - sum[idx]) / swords[i].second));
      count = min(count, tmp_count);
    }
  }
  for (int i = 0; i < n; ++i) {
    ll tmp_sum = sum[n - 1] - swords[i].first;
    count = min(count, n - 1 + (int)ceil((h - tmp_sum) / swords[i].second));
  }
  cout << count << '\n';
  return 0;
}
