#include <bits/stdc++.h>
using namespace std;
struct xyz {
  int a;
  int b;
  bool flag;
};
int main() {
  int n, h;
  cin >> n >> h;
  vector<xyz> v(n);
  for (int i = 0; i < n; i++) {
    cin >> v[i].a >> v[i].b;
    v[i].flag = true;
  }
  vector<xyz> vv = v;
  sort(v.begin(), v.end(),
       [](const xyz& x, const xyz& y) { return x.a > y.a; });
  sort(vv.begin(), vv.end(),
       [](const xyz& x, const xyz& y) { return x.b > y.b; });
  int ans1 = 0;
  int sum1 = 0;
  while (sum1 <= h) {
    if (h - sum1 <= vv[0].b) {
      sum1 += vv[0].b;
      ans1++;
      break;
    }
    sum1 += v[0].a;
    ans1++;
  }
  for (int i = 0; i < n; i++) {
    if (v[0].a <= vv[i].b && v[0].b != vv[i].b) {
      sum1 += vv[i].b - v[0].a;
      if (sum1 - h >= v[0].a) {
        ans1 -= (sum1 - h) / v[0].a;
      }
    }
  }
  cout << ans1 << endl;
}
