#include <bits/stdc++.h>
using namespace std;
int total = 0, t = 0, maxn = 0, l = 1;
int n, h;
struct node {
  int a;
  int b;
} s[100010];
bool cmp(node c, node d) { return c.b > d.b; }
bool k(node g, node h) { return g.a > h.a; }
int main() {
  cin >> n >> h;
  for (int i = 1; i <= n; i++) cin >> s[i].a >> s[i].b;
  sort(s + 1, s + n + 1, cmp);
  sort(s + 1, s + n + 1, k);
  while (1) {
    if (h <= 0) break;
    if (s[l].b > s[1].a) {
      t++;
      h -= s[l].b;
      l++;
    } else {
      break;
    }
  }
  if (h <= 0)
    cout << t << endl;
  else {
    t += h / s[1].a;
    h %= s[1].a;
    if (h != 0)
      cout << t + 1;
    else
      cout << t;
  }
  return 0;
}
