N,H = map(int,input().split())
A = [list(map(int,input().split())) for _ in range(N)]
A = sorted(A,key=lambda x:x[1], reverse=True)
bmax = A[0][1]
A = sorted(A,key=lambda x:x[0],reverse=True)
for i in range(N):
    if i==0:
        A[i] = [A[i][0],A[i][1],1]
    else:
        A[i] = [A[i][0],A[i][1],0]
cnt = 0
tot = 0
ind = 0
a = A[0][0]
b = A[0][1]
if H<=bmax:
    cnt = 1
else:
    A = sorted(A,key=lambda x:x[1],reverse=True)
    for i in range(N):
        if tot+b>=H:
            cnt += 1
            ind=1
            break
        elif A[i][1]>=a and A[i][2]==0:
            tot += A[i][1]
            cnt += 1
        else:break
        if tot>=H:
            ind = 1
            break
    if ind == 0:
        tot += b
        cnt += 1
        if tot<H:
            if (H-tot)%a==0:
                cnt += (H-tot)//a
            else:
                    cnt += (H-tot)//a+1
print(cnt)
