#include <bits/stdc++.h>
using namespace std;
const long long N = 1e6;
int d() {
  int ret;
  scanf("%d", &ret);
  return ret;
}
long long lld() {
  long long ret;
  scanf("%lld", &ret);
  return ret;
}
bool cmp(pair<int, int> s, pair<int, int> f) {
  if (f.first > s.first)
    return true;
  else if (f.first == f.second && f.second < s.second)
    return true;
  else
    return false;
}
long long arr[N];
int main() {
  long long n = lld(), h = lld(), mx = INT_MIN, mn = INT_MAX;
  for (long long i = 0; i < n; i++) {
    long long x = lld(), y = lld();
    arr[i] = y;
    mx = max(mx, x);
    mn = min(mn, x);
  }
  sort(arr, arr + n);
  long long cnt = 0;
  for (long long i = n; i >= 0; i--) {
    h -= arr[i];
    cnt++;
    if (h <= 0) {
      printf("%lld\n", cnt - 1);
      return 0;
    }
  }
  cnt--;
  if (mn != mx) {
    printf("%lld\n", cnt + (h / mx));
  } else {
    if (h % mx != 0) {
      cnt += ((h / mx) + 1);
      printf("%lld\n", cnt);
    } else
      printf("%lld\n", cnt + (h / mx));
  }
}
