N, H = (int(i) for i in input().split())
A = []
B = []
for index in range(N):
	a, b = (int(i) for i in input().split())
	A.append(a)
	B.append(b)

arg_sorted = sorted(range(N), key=lambda k: B[k], reverse=True)

A_sorted = []
B_sorted = []
for i in arg_sorted:
	A_sorted.append(A[i])
	B_sorted.append(B[i])

S = []
for i in range(N):
	if i == 0:
		S.append(B_sorted[0])
	else:
		S.append(S[i-1]+B_sorted[i])

if S[N-1] < H:
	if N == 1:
		if H-S[0]>0:
			B_main = 1 + (H-S[0]-1) // A[0] + 1
		else:
			B_main = 1
	else:
		B_main = min((N-1) + (H-S[N-2]-1) // A[N-1] + 1, N + (H-S[N-1]-1) // A[N-1] + 1)
else:
	for i in range(N):
		if S[i] >= H:
			B_main = i + 1
			break

m = B_main

for i in range(N):
	if i == 0:
		if H-S[0]>0:
			A_mix = 1 + (H-S[0]-1) // A[0] + 1
		else:
			A_mix = 1
	elif H-S[i]>0:
		A_mix = (i+1) + (H-S[i]-1) // A[i] + 1
	else:
		A_mix = H
	m = min(A_mix, m)

print(m)