#include <bits/stdc++.h>
using namespace std;
const int inf = (int)1e9;
const long long linf = (long long)1e18;
const int mod = (int)(1e9 + 7);
const int dx[] = {0, 1, 0, -1};
const int dy[] = {1, 0, -1, 0};
const int ddx[] = {0, 1, 1, 1, 0, -1, -1, -1};
const int ddy[] = {1, 1, 0, -1, -1, -1, 0, 1};
const double eps = 1e-10;
struct oreno_initializer {
  oreno_initializer() {
    cin.tie(0);
    ios::sync_with_stdio(0);
  }
} oreno_initializer;
long long n, h, a[100000], b[100000], bs, am, r;
signed main() {
  cin >> n >> h;
  for (int(i) = 0; (i) < (int)(n); (i)++) {
    cin >> a[i] >> b[i];
    am = max(am, a[i]);
  }
  sort(b, b + n);
  for (int(i) = (n - 1); (i) >= 0; (i)--) {
    h -= b[i];
    r++;
    if (h <= 0) break;
  }
  if (h > 0) r += (h + am - 1) / am;
  cout << r << '\n';
}
