#include <bits/stdc++.h>
using namespace std;
int Max(int(a), int(b), int(c)) { return max(max(a, b), c); }
int Min(int(a), int(b), int(c)) { return min(min(a, b), c); }
int main() {
  int N, H, m;
  cin >> N >> H;
  vector<int> A(N);
  vector<int> B(N);
  for (long long i = 0; i < (long long)(N); i++) {
    cin >> A.at(i) >> B.at(i);
    m = max(m, A.at(i));
  }
  sort(B.begin(), B.end());
  reverse(B.begin(), B.end());
  int i = 0;
  while (H > 0 && i < N && B.at(i) > m) {
    H -= B.at(i);
    i++;
  }
  if (H > 0) {
    i += (1 + max(-1, H - 1) / m);
  }
  cout << i << endl;
}
