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

#a>bだったらaを振り続ければいい
#aの最大になるまで、bを投げ続けて、aが最大になったらあとはaの最大を振る
#順番は無視していいので、
#bを1回、aを無限回触れる問題に帰着する？

ba=[]
max_a=0
for _ in range(n):
    a,b=map(int,input().split())
    max_a=max(max_a,a)
    ba.append([b,a])

ba.sort()
cnt=0
for item in ba:
    b=item[0]
    a=item[1]

    if b>=max_a:
        h-=b
        cnt+=1
    else:
        break

    if h<=0:
        break

if h>0:
    cnt-=(-1*h)//max_a

print(cnt)



