#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
double esp = 1e-10;
int n, h;
int a[N], b[N];
int main() {
  while (cin >> n >> h) {
    int ma = INT_MIN;
    int id = -1;
    for (int i = 0; i < n; i++) {
      cin >> a[i] >> b[i];
      if (a[i] == ma) {
        if (b[i] < b[id]) {
          id = i;
        }
      } else if (a[i] > ma) {
        id = i;
      }
      ma = max(a[i], ma);
    }
    vector<int> vec;
    for (int i = 0; i < n; i++) {
      if (b[i] >= ma) {
        if (id != i) {
          vec.push_back(b[i]);
        }
      }
    }
    sort(vec.begin(), vec.end());
    int res = 0;
    int t = b[id];
    int x = a[id];
    for (int i = (int)vec.size() - 1; i >= 0; i--) {
      int v = vec[i];
      if (v >= t) {
        h -= v;
        res++;
        if (h <= 0) break;
      } else {
        if (t >= h) {
          res++;
          break;
        } else {
          h -= v;
          res++;
          if (h <= 0) break;
        }
      }
    }
    if (h > 0) {
      res++;
      h -= t;
      if (h > 0) {
        res += (h + x - 1) / x;
      }
    }
    cout << res << endl;
  }
  return 0;
}
