#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, h;
  cin >> n >> h;
  priority_queue<pair<int, int> > katana;
  pair<int, int> aMAX = {(1 << 30), 0};
  for (int i = 0; i < n; i++) {
    int a, b;
    cin >> a >> b;
    katana.push({b, a});
    if (aMAX.second < a)
      aMAX = {b, a};
    else if (aMAX.second == a && aMAX.first > b)
      aMAX = {b, a};
  }
  int maxA = aMAX.second;
  int ans = 0;
  pair<int, int> t;
  int cnt = 1;
  while (katana.empty() == false) {
    t = katana.top();
    katana.pop();
    if (t == aMAX) {
      break;
    }
    int B = t.first;
    if (B <= maxA) {
      break;
    }
    ans++;
    h -= B;
  }
  int A = aMAX.second, B = aMAX.first;
  if (B > A) {
    h -= B;
    ans++;
  }
  if (h > 0) {
    ans += h / A;
    h -= A * (h / A);
  }
  if (h > 0) {
    ans++;
  }
  cout << ans << endl;
  return 0;
}
