#include<stdio.h>
#include<stdlib.h>

int compare_int(const void *a, const void *b)
{
    return *(int*)a - *(int*)b;
}

int main(){
	int n,h,i,j,damage,count,tmp,throw,i_maxa;
	int a[100000],b[100000];
	
	scanf("%d%d",&n,&h);
	for(i=0;i<n;i++){
		scanf("%d%d",&a[i],&b[i]);
	}
	
	i_maxa=0;
	for(i=1;i<n;i++){
		if(a[i]>a[i_maxa]){
			i_maxa=i;
		}
		else if(a[i]==a[i_maxa]){
			if(b[i]<b[i_maxa]){
				i_maxa=i;
			}
		}
	}

	qsort(b,n,sizeof(int),compare_int);
	
	count=0;
	throw=0;
  
	while(1){
		if(a[i_maxa]<b[throw]){
			h=h-b[throw];
			count++;
			throw++;
			if(h<=0){
				printf("%d\n",count);
				return 0;
			}
		}
	}
	count+=h/a[i_maxa];
	if(h%a[i_maxa]!=0){count++;}
	
	printf("%d\n",count);
	return 0;
}
