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

A.sort(reverse=True,key=lambda x:x[1])
B.sort(reverse=True,key=lambda x:x[1])

def count(n):
    used=[0]*N
    damage=0
    cnt=0
    for i in range(n):
        damage+=B[i][1]
        cnt+=1
        used[B[i][0]]=1
        if damage>=H:
            return cnt
    
    for i in range(N):
        if used[A[i][0]]==1:
            continue
        else:
            cnt+=-(-(H-damage))//A[i][1]
            return cnt

ans=float("inf")
for i in range(N):
    ans=min(ans,count(i))
print(ans)