#include <bits/stdc++.h>
using namespace std;
using Graph = vector<vector<pair<long long, long long>>>;
int main() {
  long long N, H;
  cin >> N >> H;
  vector<long long> a(N), b(N);
  long long sum = 0;
  long long amax = 0;
  for (long long i = 0; i < N; i++)
    cin >> a[i] >> b[i], amax = max(amax, a[i]), sum += b[i];
  sort(b.begin(), b.end());
  reverse(b.begin(), b.end());
  long long count = 0;
  for (long long i = 0; i < N; i++) {
    H -= b[i];
    count++;
    if (H <= 0) {
      cout << count << endl;
      return 0;
    }
  }
  count += (H + amax - 1) / amax;
  cout << count << endl;
  return 0;
}
