#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, h;
  cin >> n >> h;
  priority_queue<pair<int, int> > que;
  pair<int, int> amax;
  cin >> amax.second >> amax.first;
  for (int i = 1; i < n; i++) {
    pair<int, int> tmp;
    cin >> tmp.second >> tmp.first;
    if (tmp.second > amax.second) {
      que.push(amax);
      amax = tmp;
    } else if (tmp.second == amax.second && tmp.first < amax.first) {
      que.push(amax);
      amax = tmp;
    } else {
      que.push(tmp);
    }
  }
  int cnt = 0;
  while (!que.empty() && h - amax.first - amax.second <= que.top().first) {
    h -= que.top().first;
    que.pop();
    cnt++;
    if (h <= 0) {
      cout << cnt << endl;
      return 0;
    }
  }
  while (!que.empty() && h - amax.first - amax.second > 0 &&
         que.top().first > amax.second) {
    h -= que.top().first;
    que.pop();
    cnt++;
    if (h <= 0) {
      cout << cnt << endl;
      return 0;
    }
  }
  h -= amax.first;
  cnt++;
  if (h <= 0) {
    cout << cnt << endl;
    return 0;
  } else {
    cnt += (h + amax.second - 1) / amax.second;
  }
  cout << cnt << endl;
  return 0;
}
