#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const int maxN = 100 * 1000 + 9;
const double EPS = 1e-9;
long long h, a[maxN], b[maxN];
int n;
void read() {
  cin >> n >> h;
  for (int i = 0; i < n; i++) cin >> a[i] >> b[i];
}
void solv() {
  sort(b, b + n);
  long long mx = *max_element(a, a + n);
  int j = n - 1;
  long long ans = 0;
  while ((0 <= j) && (b[j] >= mx) && (h >= 0)) {
    h -= b[j];
    j--;
    ans++;
  }
  if (h <= 0) {
    cout << ans << '\n';
    return;
  }
  ans += (h / mx) + (h % mx != 0);
  cout << ans << '\n';
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  read();
  solv();
  return 0;
}
