#include <bits/stdc++.h>
using namespace std;
struct S {
  int p;
  bool isFly;
} a[200005];
int n, h;
bool cmp(S a, S b) { return a.p > b.p; }
int main() {
  cin >> n >> h;
  for (int i = 1; i <= n; i++) {
    cin >> a[i].p >> a[n + i].p;
    a[n + i].isFly = true;
  }
  sort(a + 1, a + 2 * n + 1, cmp);
  int s = 0;
  int t = 0;
  for (int i = 1; i <= 2 * n; i++) {
    if (a[i].isFly == true) {
      s += a[i].p;
    } else {
      ;
      t += ceil((double)(h - s) / a[i].p);
      s = INT_MAX;
    }
    if (s >= h) {
      cout << t << endl;
      break;
    }
    t++;
  }
  return 0;
}
