#include <bits/stdc++.h>
using namespace std;
vector<pair<long long, long long> > sword;
void solve(void) {
  int N;
  long long H;
  cin >> N >> H;
  sword.resize(N);
  long long attack = -1LL, soiya = 0LL, cnt = 0LL;
  for (int i = 0; i <= N - 1; i++) {
    scanf("%lld %lld\n", &sword[i].second, &sword[i].first);
    if (attack < sword[i].second) {
      attack = sword[i].second;
      soiya = sword[i].first;
    }
  }
  sort((sword).begin(), (sword).end());
  reverse((sword).begin(), (sword).end());
  for (int i = 0; i <= N - 1; i++) {
    if (sword[i].first <= attack) break;
    if (sword[i].first == soiya) continue;
    cnt++;
    H -= sword[i].first;
    if (H <= 0LL) {
      cout << cnt << endl;
      return;
    }
    if (soiya >= H) {
      cout << cnt + 1LL << endl;
      return;
    }
  }
  H -= soiya;
  cnt += (H - 1LL) / attack + 2LL;
  cout << cnt << endl;
}
int main(void) {
  solve();
  return 0;
}
