#include <bits/stdc++.h>
const int dx[8] = {1, 1, 0, -1, -1, -1, 0, 1};
const int dy[8] = {0, 1, 1, 1, 0, -1, -1, -1};
using namespace std;
long long max(long long a, int b) { return max(a, long long(b)); }
long long max(int a, long long b) { return max(long long(a), b); }
long long min(long long a, int b) { return min(a, long long(b)); }
long long min(int a, long long b) { return min(long long(a), b); }
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int n, h;
  cin >> n >> h;
  vector<int> v(n);
  int maxa = 0;
  for (long long i = 0; i < long long(n); ++i) {
    int a;
    cin >> a >> v[i];
    maxa = max(a, maxa);
  }
  sort((v).begin(), (v).end());
  int cnt = 0;
  for (long long i = 0; i < long long(n); ++i) {
    if (v[i] < maxa) continue;
    cnt++;
    h -= v[i];
    if (h <= 0) break;
  }
  if (h <= 0)
    cout << cnt << endl;
  else
    cout << cnt + (h + maxa - 1) / maxa << endl;
}
