#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using P = pair<int, int>;
int N, H, A[101010], B[101010];
int main() {
  cin >> N >> H;
  for (int j = 0; j < N; ++j) cin >> A[j] >> B[j];
  int a_idx = 0;
  for (int j = 0; j < N; ++j) {
    if (A[a_idx] < A[j]) a_idx = j;
  }
  vector<int> v;
  for (int j = 0; j < N; ++j) {
    if (j != a_idx && B[j] > A[a_idx]) v.push_back(B[j]);
  }
  sort(begin(v), end(v));
  reverse(begin(v), end(v));
  int count = 0, damage = 0;
  for (int w : v) {
    ++count;
    damage += w;
    if (damage >= H) {
      break;
    }
  }
  if (damage >= H) {
    cout << count << endl;
    return 0;
  }
  cout << count + ((H - damage - B[a_idx] + A[a_idx] - 1) / A[a_idx] + 1)
       << endl;
  return 0;
}
