N,H = map(int, input().split())

swing = []
throw = []

for v in range(N):
    w,t = map(int, input().split())
    swing.append(w)
    swing.sort()
    throw.append(t)
    throw.sort(reverse=True)


max = swing[N-1]
throwDamage = int(0)
count = int(0)

for x in throw:
    if max <= x and throwDamage < H:
        throwDamage = throwDamage + x
        count = count + 1
        continue
    else:
        break


if throwDamage >= H:
    print(count)
elif (H - throwDamage) % max == 0:
    print(int((H - throwDamage) / max) + count)
else:
    print(int((H - throwDamage) / max) + 1 + count)