#刀を投げて倒せるHPになったら投げ始める
#つまり『切る』ムーブと『投げる』ムーブを分ける
#aのリストをAとすると持ちいるのはmax(A)のみ
#まずbの中でb>max(A)を満たすものの和を求める
#その後H-(bの和)を余り切り捨てで割ってからそれに1を足す
#print
N,H = map(int, input().split())
A = []
B = []
for i in range(N):
    a,b = map(int, input().split())
    A.append(a)
    B.append(b)
a_max = max(A)
B.sort(reverse=True)
sum_b = 0
cnt = 0
for b in B:
    if b > a:
        sum_b += b
        cnt += 1
    else:
        break
if (H-sum_b)%a_max == 0:
    cnt1 = (H-sum_b)/a_max
else:
    cnt1 = (H-sum_b)//a_max+1
ans = cnt + int(cnt1)
print(ans)