#include <bits/stdc++.h>
using namespace std;
long long INF = (1ll << 32);
double EPS = 1e-4;
int main() {
  long long N, H;
  cin >> N >> H;
  vector<long long> a(N), b(N);
  for (long long i = 0; i < N; i++) {
    cin >> a[i] >> b[i];
  }
  long long x = 0;
  for (long long i = 0; i < N; i++) {
    x = max(x, a[i]);
  }
  sort(b.begin(), b.end());
  reverse(b.begin(), b.end());
  long long ans = INF;
  for (long long i = 1; i < N; i++) {
    b[i] = b[i] + b[i - 1];
  }
  for (long long i = 0; i <= min(N, H); i++) {
    if (i == 0) {
      ans = min(ans, (H + x - 1) / x);
    } else {
      ans = min(ans, i + (H - b[i - 1] + x - 1) / x);
    }
  }
  cout << ans << endl;
}
