#include <bits/stdc++.h>
typedef long long ll;
const ll INF = 10000000000;
using namespace std;
inline int toInt(string s) {
  int v;
  istringstream sin(s);
  sin >> v;
  return v;
}
template <class T>
inline string toString(T x) {
  ostringstream sout;
  sout << x;
  return sout.str();
}
int main() {
  int n, h;
  cin >> n >> h;
  vector<int> a(n);
  vector<int> b(n);
  for (int i = 0; i < (n); ++i) cin >> a[i] >> b[i];
  map<int, int, greater<int>> map_;
  for (int i = 0; i < (n); ++i) map_[b[i]] = 1;
  for (int i = 0; i < (n); ++i) map_[a[i]] = 2;
  int ans = 0;
  int hp = h;
  for (auto& m : map_) {
    if (m.second == 1) {
      hp -= m.first;
      ++ans;
      if (hp <= 0) {
        cout << ans << endl;
        return 0;
      }
    } else {
      ans += (hp + m.first - 1) / m.first;
      cout << ans << endl;
      return 0;
    }
  }
  return 0;
}
