swing=[]
throw=[]
import math
n,h=map(int,input().split())
for i in range(n):
    a,b=map(int,input().split())
    swing.append(a)
    throw.append(b)
maxSwing=max(swing)
minThrow=min(throw)
maxThrow=max(throw)
biggerlist=[]
bigsum=0
if maxSwing>=maxThrow:
    print(math.ceil(h/maxSwing))

elif maxSwing<maxThrow:
    for i in throw:
        if i>maxSwing:
            biggerlist.append(i)
            bigsum+=i
        else:
            continue

if bigsum>h:
    suming=0
    for num in range(len(biggerlist)):
        suming+=biggerlist[num]
        if suming>=h:
            print(num+1)
            break
if bigsum==h:
    print(len(biggerlist))
if bigsum<h:
    left=h-bigsum
    lastadd=math.ceil(left/maxSwing)
    print(lastadd+len(biggerlist))
    