#include <bits/stdc++.h>
using namespace std;
using Graph = vector<vector<int>>;
const long long INF = 1LL << 60;
int main() {
  long long N, H;
  cin >> N >> H;
  vector<pair<int, int>> p1(N), p2(N);
  for (long long i = 0; i < N; i++) {
    int a, b;
    cin >> a >> b;
    p1[i] = make_pair(a, b);
    p2[i] = make_pair(b, a);
  }
  sort((p1).begin(), (p1).end(), greater<pair<int, int>>());
  sort((p2).begin(), (p2).end(), greater<pair<int, int>>());
  int firstMax = p1[0].first;
  long long sum = 0;
  int count = 0;
  for (long long i = 0; i < N; i++) {
    if (p2[i].first < firstMax) continue;
    sum += p2[i].first;
    count++;
  }
  H -= sum;
  cout << count + (H + (p1[0].first - 1)) / p1[0].first << endl;
}
