#include <bits/stdc++.h>
using namespace std;
const int dx[4] = {1, 0, -1, 0};
const int dy[4] = {0, 1, 0, -1};
const int INF = (int)1e9;
const long long inf = (long long)1e18;
const long long MOD{(long long)1e9 + 7};
const long double EPS = 1e-10;
int main() {
  long long n, h;
  cin >> n >> h;
  vector<long long> a(n), b(n);
  for (int i = 0; i < n; i++) cin >> a[i] >> b[i];
  sort((a).begin(), (a).end(), greater<int>());
  sort((b).begin(), (b).end(), greater<int>());
  vector<int> strong;
  for (int i = 0; i < b.size(); i++) {
    if (a[0] <= b[i]) {
      strong.push_back(b[i]);
    }
  }
  long long cnt = 0;
  for (int i = 0; i < strong.size(); i++) {
    h -= strong[i];
    cnt++;
    if (h <= 0) {
      break;
    }
  }
  if (h > 0) {
    cnt += h / a[0];
  }
  cout << cnt << endl;
  return 0;
}
