#include <bits/stdc++.h>
using namespace std;
long long dx[4] = {0, 1, 0, -1};
long long dy[4] = {1, 0, -1, 0};
long long N, M, H;
vector<long long> a, b;
vector<pair<long long, long long> > IN, IN2;
vector<vector<long long> > dp;
bool pairCompare(const std::pair<float, long long>& firstElem,
                 const std::pair<float, long long>& secondElem) {
  return firstElem.second > secondElem.second;
}
void input() {
  cin >> N >> H;
  for (long long i = 0; i < N; i++) {
    long long t, t2;
    cin >> t >> t2;
    IN.push_back(make_pair(t, t2));
    IN2.push_back(make_pair(t, t2));
  }
}
long long dfs(long long now, long long bc, long long h) {}
signed main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  input();
  sort((IN).begin(), (IN).end(), greater<pair<long long, long long> >());
  sort((IN2).begin(), (IN2).end(), pairCompare);
  long long nh = H;
  long long cnt = 0;
  for (long long i = 0; i < N; i++) {
    if (IN2[i].second > IN[0].first) {
      nh -= IN2[i].second;
      cnt++;
    }
  }
  long long ans = 0;
  if (nh > 0) {
    ans = nh / IN[0].first;
    if (nh % IN[0].first != 0) ans++;
  }
  ans += cnt;
  cout << (ans) << endl;
  return 0;
}
