# -*- coding: utf-8 -*-
import sys

def main():
	N, H = map(int, input().split(" "))
	
	turn = 0
	atk = []
	doit = []
	atk_max = 0
	doit_max = 0
	doit_total = 0
	for _ in range(N):
		a, b = map(int, input().split(" "))
		doit_total += b
		if atk_max < a:
			atk_max = a
		atk.append(a)
		doit.append(b)
	
	if doit_total >= H:
		print(len(doit))
	
	atk_max_i = []
	for i, val in enumerate(atk):
		if atk_max == val:
			atk_max_i.append(i)
	
	if len(atk_max_i) > 1:
		dels = []
		for i, val in enumerate(atk_max_i):
			if i == 0: continue
			if doit[atk_max_i[i-1]] > doit[atk_max_i[i]]:
				H -= doit[atk_max_i[i-1]]
				dels.append(atk_max_i[i-1])
			else:
				H -= doit[atk_max_i[i]]
				dels.append(atk_max_i[i])
			turn += 1
		
		for i, val in enumerate(dels):
			del atk[val - i]
			del doit[val - i]
				
	if len(doit) == 1:
		doit_max = doit[0]
	for i, val in enumerate(doit):
		if atk_max < val:
			if atk[i] != atk_max:
				H -= val
				turn += 1
			else:
				doit_max = val
	
	on = H // atk_max
	if doit_max - atk_max >= H % atk_max:
		print(turn + on)
	else:
		print(turn + on + 1)
		
if __name__ == "__main__":
	main()
	