#include <bits/stdc++.h>
using namespace std;
int main() {
  long long N, H;
  cin >> N >> H;
  vector<pair<long long, long long>> C(N);
  long long thrower = 0;
  for (long long i = 0; i < N; i++) {
    cin >> C[i].first >> C[i].second;
    thrower += C[i].second;
  }
  if (thrower >= H) {
    vector<pair<long long, long long>> D(N);
    for (long long j = 0; j < N; j++) {
      D[j].first = C[j].second;
      D[j].second = C[j].first;
    }
    sort(D.begin(), D.end());
    reverse(D.begin(), D.end());
    long long sum = 0;
    long long k = 0;
    while (sum + D[k].first < H) {
      sum += D[k].first;
      k++;
    }
    cout << k + 1 << endl;
    return 0;
  } else {
    long long count = N;
    sort(C.begin(), C.end());
    reverse(C.begin(), C.end());
    long long knife = C[0].first;
    H -= thrower;
    count += (H + knife - 1) / knife;
    cout << count << endl;
    return 0;
  }
}
