#include <bits/stdc++.h>
using namespace std;
const int maxn = 100000 + 10;
int damage1[maxn], damage2[maxn], H, n;
int solve() {
  cin >> n >> H;
  for (int i = 0; i < n; i++) {
    cin >> damage1[i] >> damage2[i];
  }
  int cnt = 0;
  sort(damage2, damage2 + n);
  int maxn = 0;
  for (int i = 0; i < n; i++) maxn = max(maxn, damage1[i]);
  for (int i = n - 1; i >= 0; i--) {
    if (damage2[i] <= maxn) continue;
    H -= damage2[i];
    cnt++;
    if (H <= 0) return cnt;
  }
  cout << H << endl;
  return (H - 1) / maxn + 1 + cnt;
}
int main() {
  cout << solve();
  return 0;
}
