#include <bits/stdc++.h>
using namespace std;
double EPS = 1e-9;
int INFi = 1000000005;
long long INFll = 1000000000000000005ll;
double PI = acos(-1);
int dirx[8] = {-1, 0, 0, 1, -1, -1, 1, 1};
int diry[8] = {0, 1, -1, 0, -1, 1, -1, 1};
long long MOD = 1000000007;
long long n;
int main() {
  long long h;
  cin >> n >> h;
  long long a[n], b[n];
  for (int i = 0; i < n; i++) cin >> a[i] >> b[i];
  sort(a, a + n);
  sort(b, b + n);
  int b_use = upper_bound(b, b + n, a[n - 1]) - b;
  long long c[n - b_use];
  for (int i = 0; i < n - b_use; i++) {
    if (i == 0)
      c[0] = b[n - 1];
    else
      c[i] = c[i - 1] + b[n - 1 - i];
  }
  if (c[n - b_use - 1] > h) {
    cout << (upper_bound(c, c + (n - b_use), h) - c) + 1 << endl;
  } else {
    cout << long long(ceil((h - c[n - b_use - 1]) / double(a[n - 1]))) + n -
                b_use
         << endl;
  }
  return 0;
}
