#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long n, h, x, y;
  cin >> n >> h;
  vector<pair<long long, long long> > vec;
  vector<int> b(n);
  for (int i = 0; i <= n - 1; i++) {
    cin >> x >> y;
    vec.push_back({x, y});
    b[i] = y;
  }
  sort(vec.begin(), vec.end());
  sort(b.begin(), b.end());
  long long ans, ct = 0, c = 0;
  for (int i = 0; i <= n - 1; i++)
    if (b[i] == vec[n - 1].second) c++;
  if (h % (vec[n - 1].first) == 0)
    ct = h / vec[n - 1].first;
  else
    ct = h / vec[n - 1].first + 1;
  ans = ct * (vec[n - 1].first);
  ans += vec[n - 1].second;
  ct++;
  while (ans >= h) {
    ct--;
    ans -= (vec[n - 1].first);
  }
  ct++;
  ans += (vec[n - 1].first);
  c--;
  for (int i = n - 1; i >= 0; i--) {
    if (b[i] == vec[n - 1].second && c == 0)
      continue;
    else if (b[i] == vec[n - 1].second && c > 0)
      c--;
    long long temp = b[i] / vec[n - 1].first;
    if (temp > 0) {
      ans += b[i];
      ans -= (temp * vec[n - 1].first);
      ct -= (temp - 1);
    }
  }
  while (ans >= h) {
    ct--;
    ans -= (vec[n - 1].first);
  }
  ct++;
  ans += (vec[n - 1].first);
  cout << ct;
  return 0;
}
