#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using P = pair<int, int>;
using lP = pair<ll, ll>;
using fP = pair<double, double>;
using PPI = pair<P, int>;
ll const mod = 1e9 + 7;
const ll MAX = 1000005;
using vi = vector<int>;
using vl = vector<ll>;
using vc = vector<char>;
using vd = vector<double>;
using vs = vector<string>;
using vp = vector<P>;
using vb = vector<bool>;
using vvi = vector<vector<int>>;
using vvl = vector<vector<ll>>;
using vvd = vector<vector<double>>;
using vvc = vector<vector<char>>;
using vvp = vector<vector<P>>;
using vvb = vector<vector<bool>>;
template <typename T>
bool chmax(T &a, const T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <typename T>
bool chmin(T &a, const T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
int main() {
  int n, h;
  cin >> n >> h;
  vi a(n), b(n);
  for (long long i = 0; i < n; ++i) cin >> a[i] >> b[i];
  sort((a).rbegin(), (a).rend());
  sort((b).rbegin(), (b).rend());
  for (long long i = 0; i < n - 1; ++i) {
    b[i + 1] += b[i];
  }
  int ans = (h) / a[0];
  if (h % a[0] != 0) ans++;
  for (long long i = 0; i < n; ++i) {
    int t = h;
    int res = i + 1;
    t -= b[i];
    res += (t) / a[0];
    if (t % a[0] != 0) res++;
    chmin(ans, res);
  }
  cout << ans << endl;
  return 0;
}
