#include <bits/stdc++.h>
using namespace std;
const int INF = 1000000000;
int main() {
  int N, H;
  scanf("%d %d", &N, &H);
  vector<int> A(N), B(N);
  for (int i = 0; i < N; ++i) {
    scanf("%d %d", &A[i], &B[i]);
  }
  long long wield_max = *max_element(A.begin(), A.end());
  sort(B.begin(), B.end(), greater<int>());
  int ans = 0;
  for (int i = 0; i >= 0 and B[i] > wield_max; ++i) {
    ++ans;
    H -= B[i];
  }
  ans += (1LL * H + wield_max - 1) / wield_max;
  printf("%d\n", ans);
  return 0;
}
