n,h = map(int,input().split())
ab = []
B = []
maxA=0
maxAi=0
for i in range(n):
    ab.append(list(map(int,input().split())))
    B.append(ab[i][1])
ab.sort(reverse=True, key=lambda x:x[1])
B.sort(reverse=True)
maxB = B[0]
minB = B[n-1]
for i in range(n):
    a = ab[i][0]
    if maxA<=a:
        maxA = a
        maxAi = i

if maxB<=maxA:
    print(-(-h//maxA))
elif minB>maxA:
    smB = sum(B)
    if smB>=h:
        dm=0
        for i in range(n):
            dm+=B[i]
            if dm>=h:
                print(i+1)
                break
    else:
        cnt=0
        h -=smB
        cnt+=n
        cnt+=(-(-h//maxA))
        print(cnt)
else:
    cnt=0
    for i in range(n):
        h -=ab[i][1]
        cnt+=1
        if h<=0:
            print(cnt)
            break
        else:
            if i==maxAi:
                cnt+=-(-h//maxA)
                print(cnt)
                break