#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);
  for (int i = 0; i <= N - 1; i++)
    scanf("%lld %lld\n", &sword[i].second, &sword[i].first);
  sort((sword).begin(), (sword).end());
  reverse((sword).begin(), (sword).end());
  if (H <= sword[0].first) {
    cout << 1 << endl;
    return;
  }
  for (int i = 0; i <= N - 1; i++) swap(sword[i].second, sword[i].first);
  sort((sword).begin(), (sword).end());
  reverse((sword).begin(), (sword).end());
  long long attack = sword[0].first, soiya = sword[0].second, cnt = 1LL,
            cnt2 = 0LL, H2 = H;
  H -= soiya;
  for (int i = 1; i <= N - 1; i++) {
    H -= max(attack, sword[i].second);
    H2 -= max(attack, sword[i].second);
    cnt++;
    cnt2++;
    if (H <= 0LL) {
      cout << cnt << endl;
      return;
    }
    if (H2 <= 0LL) {
      cout << cnt2 << endl;
      return;
    }
  }
  cnt += (H - 1LL) / attack + 1LL;
  cnt2 += (H2 - 1LL) / attack + 1LL;
  cout << min(cnt, cnt2) << endl;
}
int main(void) {
  solve();
  return 0;
}
