#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using p = pair<ll, ll>;
using graph = vector<vector<ll>>;
const long long inf = 2147483647;
const ll INF = 9223372036854775807;
signed main() {
  long long n, h;
  cin >> n >> h;
  long long k = 0;
  priority_queue<long long> q;
  for (ll i = 0; i < n; i++) {
    long long a, b;
    cin >> a >> b;
    k = max(k, a);
    q.push(b);
  }
  long long ans = 0;
  if (k >= q.top()) {
    ans = ceil((double)h / (double)k);
  } else {
    while (q.top() > k && !q.empty()) {
      h -= q.top();
      q.pop();
      ans++;
    }
    if (h > 0) ans += ceil((double)h / (double)k);
  }
  cout << ans << "\n";
  return 0;
}
