#include <bits/stdc++.h>
using namespace std;
int main() {
  long long N, H;
  cin >> N >> H;
  vector<long long> A, B, B_greater;
  long long a_max = 0;
  long long b_sum = 0;
  for (int i = 0; i < N; i++) {
    long long a, b;
    cin >> a >> b;
    A.push_back(a);
    if (a_max < a) a_max = a;
    B.push_back(b);
    B_greater.push_back(b);
    b_sum += b;
  }
  sort(B_greater.begin(), B_greater.end(), greater<long long>());
  if (b_sum > H) {
    int ret = 0;
    long long sum = 0;
    while (sum < H) {
      sum += B_greater[ret];
      ret++;
    }
    cout << ret << endl;
  } else {
    H -= b_sum;
    cout << N + (long long)ceil((H / (double)a_max)) << endl;
  }
  return 0;
}
