#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
using ll = long long;
int main() {
  int N, H;
  cin >> N >> H;
  vector<int> a(N), b(N);
  int maxA = 0;
  for (int i = 0; i < N; i++) {
    cin >> a[i] >> b[i];
    maxA = max(maxA, a[i]);
  }
  int cnt = 0;
  sort((b).begin(), (b).end());
  reverse((b).begin(), (b).end());
  for (int i = 0; i < N; i++) {
    if (b[i] > maxA) {
      H -= b[i];
      cnt++;
    } else {
      break;
    }
  }
  if (H < 0) {
    cout << cnt << endl;
    return 0;
  }
  cnt += H / maxA;
  if (H % maxA == 0)
    cout << cnt << endl;
  else
    cout << cnt + 1 << endl;
}
