#include <bits/stdc++.h>
using namespace std;
const long long INF = (long long)1e9;
const long long MOD = (long long)1e9 + 7;
const double EPS = (double)1e-10;
const long long dx[] = {-1, 0, 0, 1};
const long long dy[] = {0, -1, 1, 0};
struct Accelerate_Cin {
  Accelerate_Cin() {
    cin.tie(0);
    ios::sync_with_stdio(0);
    cout << fixed << setprecision(20);
  };
};
signed main() {
  long long N, H;
  cin >> N >> H;
  static long long a[100010], b[100010];
  memset(a, 0, sizeof(a));
  memset(b, 0, sizeof(b));
  for (long long i = 0; i < N; i++) {
    cin >> a[i] >> b[i];
  }
  long long ma = 0;
  for (long long i = 0; i < N; i++) {
    ma = max(ma, a[i]);
  }
  vector<long long> v;
  for (long long i = 0; i < N; i++) {
    if (b[i] > ma) v.push_back(b[i]);
  }
  sort(v.begin(), v.end(), greater<long long>());
  long long cont = 0;
  for (auto x : v) {
    H -= x;
    cont++;
    if (H <= 0) break;
  }
  cont += (H + ma - 1) / ma;
  cout << cont << endl;
  return 0;
}
