#include <bits/stdc++.h>
using namespace std;
const long long MINF = -10e10;
const int INF = INT_MAX;
const int mod = 1000000007;
int main() {
  long long n, h;
  cin >> n >> h;
  vector<long long> sword_slices(n);
  vector<long long> sword_throws(n);
  for (long long i = 0; i < (n); ++i) {
    cin >> sword_slices[i];
    cin >> sword_throws[i];
  }
  long long slice_max = *max_element(sword_slices.begin(), sword_slices.end());
  long long throw_sum =
      accumulate(sword_throws.begin(), sword_throws.end(), 0ll,
                 [&](long long a, long long b) -> long long {
                   if (b >= slice_max) {
                     return a + b;
                   } else {
                     return a;
                   }
                 });
  long long throw_count =
      accumulate(sword_throws.begin(), sword_throws.end(), 0ll,
                 [&](long long a, long long b) -> long long {
                   if (b >= slice_max) {
                     return a + 1;
                   } else {
                     return a;
                   }
                 });
  h -= throw_sum;
  long long slice_count = (h + slice_max - 1) / slice_max;
  cout << throw_count + slice_count << endl;
}
