#include <bits/stdc++.h>
using namespace std;
long long int m1k = 0, m5k = 0, m10k = 0;
double a[100002][2] = {0};
int main() {
  int n, m, Maxa = 0;
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    cin >> a[i][0] >> a[i][1];
    if (a[Maxa][0] < a[i][0]) Maxa = i;
  }
  priority_queue<int> s;
  for (int i = 0; i < n; i++) {
    if (a[Maxa][0] < a[i][1]) s.push(a[i][1]);
  }
  int num = 0;
  while (m) {
    if (s.empty() == 0) {
      m -= s.top();
      s.pop();
      num++;
    } else {
      num += ceil(m / a[Maxa][0]);
      m = 0;
    }
  }
  cout << num;
}
