#include <bits/stdc++.h>
void fo() { fflush(stdout); }
using namespace std;
bool cmp(pair<int, int> a, pair<int, int> b) {
  if (a.second != b.second) return a.second > b.second;
  return a.first < b.first;
}
int n, h;
vector<pair<int, int>> v;
int main() {
  scanf("%d%d", &n, &h);
  for (int i = 0; i < n; i++) {
    int u, v1;
    scanf("%d%d", &u, &v1);
    v.push_back({u, v1});
  }
  sort(v.begin(), v.end(), cmp);
  long long ans = 1e12;
  long long sum = 0;
  int burn = 0;
  for (int i = 0; i < n; i++) {
    long long l = 0, r = 1e9 + 20, m;
    while (l <= r) {
      m = (l + r) >> 1LL;
      long long cur = m * v[i].first + v[i].second + sum;
      if (cur >= h) {
        ans = min(ans, m + 1LL + burn);
        if (cur - v[i].second - sum >= h) ans = min(ans, 1LL * m);
        if (cur - sum >= h) ans = min(ans, m + 1LL);
        if (cur - v[i].second >= h) ans = min(ans, m + burn);
        r = m - 1;
      } else
        l = m + 1;
    }
    burn++;
    sum += v[i].second;
  }
  printf("%lld\n", ans);
  return 0;
}
