#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
struct node {
  int a, b;
} t[maxn];
int n, h;
bool cmp(node a, node b) {
  if (a.a != b.a)
    return a.a > b.a;
  else
    return a.b < b.b;
}
int main() {
  scanf("%d%d", &n, &h);
  for (int i = 1; i <= n; i++) scanf("%d%d", &t[i].a, &t[i].b);
  sort(t + 1, t + n + 1, cmp);
  int ans = 0;
  for (int i = 1; i <= n; i++) {
    if (t[i].b > t[1].a) {
      h -= t[i].b;
      ++ans;
      if (h <= 0) {
        cout << ans << endl;
        return 0;
      }
    }
  }
  ans += h / t[1].a;
  if (h % t[1].a > 0) ans++;
  cout << ans << endl;
  return 0;
}
