N, H = map(int, input().split())
sword_list = [list(map(int, input().split())) for i in range(N)]
a_list = [i[0] for i in sword_list]
#print(a_list)
b_list = [i[1] for i in sword_list]
#print(b_list)
new_list = sorted(b_list)
new_list.insert(0, max(a_list))
#print(new_list)
index1 = 1
# Aの攻撃がBのいくつかの攻撃より強い場合、どの場所のBかを知っておく
for i in range(1, len(new_list) - 1):
    if new_list[i] <= new_list[0] and new_list[i + 1] > new_list[0]:
        index1 = i + 1
ans = 10
#print(index1)
# 全てBの攻撃で倒す場合    
if H - sum(new_list[index1:]) <= 0:
    count = 0
    
    # new_listの長さはN+1
    for j in range(N, 0, -1):
        count += new_list[j]
        
        if count >= H:
            
            ans = N + 1 - j
            break
# Aの攻撃を使う    
else:
    
    ans = (H - sum(new_list[index1:])) // max(a_list) + 1 + N + 1 - index1

print(ans)