#include <bits/stdc++.h>
using namespace std;
const int INTINF = int(1e9) + 1;
const long long LLINF = long long(1e18) + 1;
long double eps = 1.0E-14;
void solve() {
  long long N, H;
  cin >> N >> H;
  vector<long long> a(N);
  vector<long long> b(N);
  long long max_a = 0;
  for (int i = 0, i_len = (N); i < i_len; ++i) {
    cin >> a[i];
    max_a = max(max_a, a[i]);
    cin >> b[i];
  }
  sort(b.begin(), b.end(), [](long long a, long long b) { return a > b; });
  long long ans = 0;
  for (auto b_i : b) {
    if (max_a <= b_i) {
      H -= b_i;
      ans++;
    } else {
      break;
    }
  }
  cout << ans + (H + max_a - 1) / max_a << endl;
}
int main(int argc, char const *argv[]) {
  cin.tie(0);
  ios::sync_with_stdio(false);
  std::cout << std::fixed << std::setprecision(20);
  solve();
  return 0;
}
