#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 (h) {
    if (h - amax.first <= 0) {
      cnt++;
      break;
    }
    if (que.empty() || que.top().first <= amax.second) {
      cnt += h / amax.second - 1;
      h -= (h / amax.second - 1) * amax.second;
    } else if (que.top().first >= amax.second) {
      h -= que.top().first;
      que.pop();
      cnt++;
    } else {
      h -= amax.second;
      cnt++;
    }
  }
  cout << cnt << endl;
  return 0;
}
