#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const long long LINF = 1e16;
int main(void) {
  cin.tie(0);
  ios::sync_with_stdio(false);
  long long N, H;
  cin >> N >> H;
  vector<pair<long long, long long> > ab(N);
  for (auto& in : ab) cin >> in.first >> in.second;
  sort(ab.begin(), ab.end());
  reverse(ab.begin(), ab.end());
  long long sum = 0;
  long long cnt = 0;
  bool f = false;
  for (int i = 0; i < N; i++) {
    if (ab[i].second >= ab[0].first) {
      sum += ab[i].second;
      cnt++;
      if (sum >= H) {
        f = true;
        break;
      }
    }
    if (f) break;
  }
  if (f) {
    cout << cnt << endl;
  } else {
    long long z = (H - sum) / ab[0].first;
    for (int i = -10; i <= 10; i++) {
      if (sum + ab[0].first * max(0LL, z + i) >= H) {
        cout << cnt + max(0LL, z + i) << endl;
        return 0;
      }
    }
  }
  return 0;
}
