#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 1;
vector<pair<int, int>> vc;
bool cmp(const pair<int, int>& i, const pair<int, int>& j) {
  if (i.second > j.second) return 1;
  return 0;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int n, h, x, y;
  scanf("%d %d", &n, &h);
  pair<int, int> mx(0, 0);
  for (int i = 0; i < n; i++) {
    cin >> x >> y;
    vc.push_back({x, y});
    if (mx.first <= x) {
      mx = max(mx, {x, y});
    }
  }
  sort(vc.begin(), vc.end(), cmp);
  long long ans = 0;
  if (mx.second >= h || mx.first >= h) {
    return cout << 1, 0;
  }
  for (int i = 0; i < vc.size(); i++) {
    if (vc[i].first == mx.first && vc[i].second == mx.second) continue;
    if (vc[i].second >= mx.first) {
      ans++;
      if (h - vc[i].second <= 0) {
        h = 0;
        break;
      }
      h -= vc[i].second;
    } else {
      break;
    }
  }
  if (!h) {
    return cout << ans, 0;
  }
  if (mx.second > mx.first) {
    h -= mx.second;
    ans++;
  }
  if (h > 0 && h % mx.first) {
    ans++;
  }
  if (h > 0) {
    ans += h / mx.first;
  }
  cout << ans;
}
