#include <bits/stdc++.h>
using namespace std;
const long double PI =
    3.14159265358979323846264338327950288419716939937510582097;
const long long INFLL = 0x3f3f3f3f3f3f3f3f;
const int INF = 0x3f3f3f3f;
const long double EPS = 1e-10;
int read() {
  int x = 0;
  char ch = ' ';
  bool flag = false;
  while (ch < '0' || ch > '9') {
    if (ch == '-') flag = true;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = (x << 3) + (x << 1) + ch - '0';
    ch = getchar();
  }
  return flag ? -x : x;
}
const int MAX_N = 100005;
int a[MAX_N], b[MAX_N];
int n, H;
int main() {
  cin >> n >> H;
  for (int i = 0; i < n; i++) cin >> a[i] >> b[i];
  sort(a, a + n);
  reverse(a, a + n);
  int cnt = 0;
  for (int i = 0; i < n; i++) {
    if (b[i] > a[0]) {
      H -= b[i];
      cnt++;
    }
  }
  cout << (long long)ceil(1.0 * H / a[0]) + cnt << endl;
  return 0;
}
