#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using P = pair<int, int>;
using TP = tuple<ll, ll, ll>;
ll MOD = 1e9 + 7;
const int INF = 1000 * 1000 * 1000;
const ll LINF = (ll)1e18;
int xv[4] = {-1, 1, 0, 0};
int yv[4] = {0, 0, -1, 1};
vector<vector<int>> mp(501, vector<int>(501, 0));
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int N, H;
  ll amax = 0;
  cin >> N >> H;
  vector<ll> bv(N);
  ll ans = 0;
  for (int(i) = 0; (i) < (N); (i)++) {
    ll a, b;
    cin >> a >> b;
    amax = max(amax, a);
    bv[i] = b;
  }
  for (int(i) = 0; (i) < (N); (i)++) {
    if (bv[i] > amax) {
      H -= bv[i];
      ans++;
    }
  }
  ans += (long)ceil((double)H / (double)amax);
  printf("%lld\n", ans);
  return 0;
}
