#include <bits/stdc++.h>
using namespace std;
int dx[8] = {0, 0, -1, 1, 1, 1, -1, -1};
int dy[8] = {-1, 1, 0, 0, 1, -1, 1, -1};
const int SIZE = 100050;
int main() {
  long long N, H;
  cin >> N >> H;
  vector<pair<long long, long long> > C;
  for (int i = 0; i < N; i++) {
    long long a, b;
    cin >> a >> b;
    C.push_back(make_pair(a, 0));
    C.push_back(make_pair(b, 1));
  }
  bool flag = 0;
  sort(C.begin(), C.end(), greater<pair<long long, long long> >());
  for (long long i = 0; i < C.size(); i++) {
    if (C[i].second == 0) {
      cout << i + ((H + C[i].first - 1) / C[i].first) << endl;
      return 0;
    }
    H -= C[i].first;
  }
  return 0;
}
