n,h = map(int,raw_input().split())

arr = [[0 for column in range(2)] for row in range(n)]
for i in range(n):
	line = map(int,raw_input().split())
	arr[i][0] = line[0]
	arr[i][1] = line[1]

max = 0
for i in range(n):
	if arr[i][0] > max:
		max = arr[i][0]

list = []
list.append(0)

for i in range(n):
	if arr[i][1] > max:
		list.append(arr[i][1])

list.sort()
list.reverse()


count = 0
sumofthrow = sum(list)

count += -(-(h-sumofthrow)//max )
h -= max * -(-(h-sumofthrow)//max )



while h > 0 :
	h -= list.pop(0)
	count += 1

print count
 