#include <bits/stdc++.h>
using namespace std;
int const INF = 1e9 + 41;
int const N = 1e5 + 41;
int n, h, x[N], y[N];
vector<pair<int, int> > a;
int ans = INF;
void solve() {
  for (int i = 0; i < n; ++i) a.push_back(make_pair(x[i], y[i]));
  vector<int> c;
  sort(a.begin(), a.end());
  for (int i = 0; i < n - 1; ++i) {
    c.push_back(max(a[i].second, a.back().first));
  }
  int q = 0;
  int h0 = h;
  for (int i = 0; i < n - 1; ++i) {
    if (h0 > 0) {
      h0 -= c[i];
      ++q;
    } else
      break;
  }
  if (h0 > 0) {
    h0 -= max(a.back().second, a.back().first);
    ++q;
  }
  if (h0 > 0) {
    int q0 = (h0 + a.back().first - 1) / a.back().first;
    q += q0;
    h0 -= q0 * a.back().first;
  }
  ans = min(ans, q);
}
int main() {
  scanf("%d %d", &n, &h);
  for (int i = 0; i < n; ++i) scanf("%d %d", &x[i], &y[i]);
  solve();
  printf("%d\n", ans);
  return 0;
}
