#include <iostream>
#include <vector>
#include <string>
#include <cmath>
#include <set>
#include <algorithm>
#include <array>
#include <complex>
#include <string>
#include <utility>

int main(){
  std::cin.tie(nullptr);
  std::ios_base::sync_with_stdio(false);
  int N,H;
  std::cin >> N >> H;
  std::vector<int> a(N),b(N);
  std::cin >> a[0] >> b[0];
  int max_a=a[0],times=0;

  for(int i=1;i<N;i++){
    std::cin >> a[i] >> b[i];
    if(max_a < a[i]){
      max_a=a[i];
    }
  }
  std::sort(b.begin(),b.end(),std::greater<Type>())
  for(int i=0;i<N;i++){
    if(max_a < b[i]){
      H-=b[i];
      times++;
        if(H<=0){
          std::cout << times << std::endl;
          return 0;
        }
    }
  }
  if(H<=0){
    std::cout << times << std::endl;
    return 0;
  }
  times+=(H+max_a-1)/max_a;
  std::cout << times << std::endl;
}