#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  long long int h;
  cin >> n >> h;
  vector<long long int> v;
  int maxa_i = 0;
  long long int maxa = 0;
  long long int b_of_maxa = 0;
  for (int i = 0; i < n; i++) {
    long long int a, b;
    cin >> a >> b;
    v.push_back(b);
    if (a > maxa) {
      maxa = a;
      maxa_i = i;
      b_of_maxa = b;
    } else if (a == maxa && b < b_of_maxa) {
      maxa_i = i;
      b_of_maxa = b;
    }
  }
  v.erase(v.begin() + maxa_i);
  sort(v.begin(), v.end());
  reverse(v.begin(), v.end());
  long long int ans = 0;
  for (int i = 0; i < v.size(); i++) {
    if (h <= 0) break;
    if (h <= b_of_maxa) {
      ans++;
      break;
    }
    h -= max(maxa, v[i]);
    ans++;
  }
  if (h > 0) {
    ans += h / maxa - 1;
    h -= maxa * (h / maxa - 1);
    if (b_of_maxa >= h || maxa_i >= h)
      ans++;
    else
      ans += 2;
  }
  cout << ans << endl;
  return 0;
}
