setting = input().rstrip().split(" ")
katana_count = int(setting[0])
HP = int(setting[1])

katana_attack = []
katana_throw = []

for i in range(katana_count):
    katana_status = input().rstrip().split(" ")
    katana_attack.append(int(katana_status[0]))
    katana_throw.append(int(katana_status[1])) 

throw = 0
attack = 0
max_katana_attack = max(katana_attack)
over_attack = []

for i in range(katana_count):
    if katana_throw[i] > max_katana_attack:
        over_attack.append(katana_throw[i])

over_attack.sort(reverse=True)

for a in over_attack:
    throw += 1
    HP = HP - a 
    if HP < 0 :
        break

if HP % max_katana_attack != 0:
    attack = int(HP / max_katana_attack) +1
else:
    attack = int(HP / max_katana_attack)

print(attack + throw)
