#include <bits/stdc++.h>
using namespace std;
struct sward {
  long long a, b;
} q[1000005];
bool cmp1(sward a, sward b) { return a.a > b.a; }
bool cmp2(sward a, sward b) { return a.b > b.b; }
int main() {
  long long n, h;
  cin >> n >> h;
  for (int i = 0; i < n; i++) {
    cin >> q[i].a >> q[i].b;
  }
  sort(q, q + n, cmp1);
  sort(q, q + n, cmp1);
  long long max_1 = q[0].a;
  long long tmp = 0;
  for (int i = 0; i < n; i++) {
    if (q[i].b > max_1) {
      h -= q[i].b;
      tmp++;
      if (h <= 0) {
        cout << tmp << endl;
        return 0;
      }
    }
  }
  tmp += (h + max_1 - 1) / max_1;
  cout << tmp << endl;
  return 0;
}
