#include <bits/stdc++.h>
using namespace std;
pair<int, int> P[100000];
int main() {
  long long n, h;
  cin >> n >> h;
  for (int i = 0; i < n; i++) {
    cin >> P[i].first >> P[i].second;
  }
  sort(P, P + n);
  int maxi = P[n - 1].first;
  for (int i = 0; i < n - 1; i++) {
    maxi = max(P[i].second, maxi);
  }
  long long rest = h;
  long long cnt = 0;
  if (P[n - 1].second >= h) {
    cout << 1 << endl;
  } else if (maxi == P[n - 1].first) {
    while (rest > P[n - 1].second) {
      rest -= P[n - 1].first;
      cnt++;
    }
    cout << cnt + 1 << endl;
  } else {
    long long k = 0;
    vector<int> store(n, 0);
    for (int i = 0; i < n - 1; i++) {
      if (P[i].second > P[n - 1].first) {
        store[k++] = P[i].second;
      }
    }
    long long cc = 0;
    k = 0;
    while (rest > P[n - 1].second) {
      rest -= P[n - 1].first;
      cc++;
    }
    while (rest > P[n - 1].second && store[k] != 0) {
      rest -= store[k++];
      cnt++;
    }
    cout << cnt + cc + 1 << endl;
  }
  return 0;
}
