#include <bits/stdc++.h>
using namespace std;
long long maxl(long long x, long long y) {
  if (x > y)
    return x;
  else
    return y;
}
int main(void) {
  long long n, h;
  cin >> n >> h;
  vector<long long> a(n), b(n);
  vector<pair<long long, long long>> x(n * 2);
  for (int i = 0; i < n; i++) {
    cin >> a[i] >> b[i];
    x[i] = make_pair(a[i], i);
    x[n + i] = make_pair(b[i], n + i);
  }
  sort(x.begin(), x.end());
  int use;
  for (int i = 2 * n - 1; i >= n - 1; i--) {
    if (x[i].second < n) {
      use = x[i].second;
      break;
    }
  }
  int ans = 0, num = 2 * n - 1;
  while (h > 0) {
    if (x[num].second >= n && x[num].second != n + use) {
      h -= x[num].first;
      ans++;
      num--;
    } else if (x[num].second == n + use)
      num--;
    else if (x[num].second == use) {
      h -= b[use];
      ans++;
      if (h <= 0)
        cout << ans << endl;
      else if (h % a[use] == 0)
        cout << ans + h / a[use] << endl;
      else
        cout << ans + h / a[use] + 1 << endl;
      return 0;
    }
  }
}
