#include <bits/stdc++.h>
using namespace std;
using int64 = long long;
using PAIR = pair<int64, int64>;
constexpr int INF = 1 << 30;
constexpr int64 LINF = 1LL << 60;
constexpr int MOD = 1e9 + 7;
constexpr int MAX_N = 3e5 + 1;
template <typename T>
void MACRO_VAR_Scan(T &t) {
  cin >> t;
}
template <typename First, typename... Rest>
void MACRO_VAR_Scan(First &first, Rest &...rest) {
  cin >> first;
  MACRO_VAR_Scan(rest...);
}
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
int64 gcd(int64 a, int64 b) { return b ? gcd(b, a % b) : a; }
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  ;
  int64 n, h;
  MACRO_VAR_Scan(n, h);
  ;
  vector<PAIR> d(n);
  int64 mx = 0;
  for (int64 i = 0; i < (n); ++i) {
    int64 a, b;
    MACRO_VAR_Scan(a, b);
    ;
    d[i] = make_pair(a, b);
    mx = max(mx, a);
  }
  int64 ans = 0, sm = 0;
  for (int64 i = 0; i < (n); ++i) {
    if (d[i].second > mx) {
      sm += d[i].second;
      ++ans;
    }
    if (sm >= h) break;
  }
  if (sm < h) ans += (h - sm + mx - 1) / mx;
  cout << (ans);
  cout << endl;
  ;
  return 0;
}
