#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int N, H, b = 0, Ans = 0;
  cin >> N >> H;
  vector<long long int> A(N);
  vector<long long int> B(N);
  vector<long long int> V(N + 1);
  for (long long int i = 0; i < N; i++) cin >> A[i] >> B[i];
  sort(B.begin(), B.end());
  reverse(B.begin(), B.end());
  for (long long int i = 0; i < N; i++) {
    b += B[i];
    V[i + 1] = b;
  }
  if (b >= H) {
    for (long long int i = 1; i < N + 1; i++) {
      Ans++;
      if (V[i] >= H) break;
    }
    cout << Ans;
  } else {
    Ans = 1000000000000000000;
    long long int M = *max_element(A.begin(), A.end()), h = H, j;
    for (long long int i = N; i >= 1; i--) {
      if ((h - V[i]) % M == 0)
        j = (h - V[i]) / M;
      else
        j = (h - V[i]) / M + 1;
      Ans = min(Ans, i + j);
    }
    cout << Ans;
  }
}
