#include <bits/stdc++.h>
using namespace std;
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
int num[110] = {0};
int main(void) {
  long long n, h, a, b, ans = 0;
  cin >> n >> h;
  vector<pair<long long, long long>> p(n);
  for (int i = 0; i < n; i++) {
    cin >> a >> b;
    p[i] = make_pair(a, b);
  }
  if (n == 1) {
    long long c = h / p[0].first + 1;
    while (true) {
      if (c * p[0].first + p[0].second >= h)
        c--;
      else {
        c++;
        break;
      }
    }
    cout << c + 1 << endl;
    return 0;
  }
  sort(p.begin(), p.end());
  long long base1 = p[0].first;
  long long base2 = p[n - 1].first;
  long long num = 0, index = n - 1;
  if (base1 == base2) {
    num = p[n - 1].second;
    for (int i = 0; i < n; i++) {
      if (p[i].second < num) {
        num = p[i].second;
        index = i;
      }
    }
  }
  for (int i = 0; i <= n - 1; i++) {
    if (index == i) continue;
    if (base2 <= p[i].second) {
      h -= p[i].second;
      ans++;
    }
  }
  long long c = h / base2 + 1;
  while (true) {
    if (base2 * c + p[index].second >= h)
      c--;
    else {
      c++;
      break;
    }
  }
  cout << ans + c + 1 << endl;
  return 0;
}
