N, H = map(int, input().split())
katana = [[0 for _ in range(2)] for _ in range(N)]
for i in range(N):
  a, b = map(int, input().split())
  katana[i][0], katana[i][1] = a, b
katana.sort(key=lambda x: x[0], reverse=True)
katana1 = katana.pop(0)
katana.sort(key=lambda x: x[1], reverse=True)
from collections import deque
d = deque(katana)
answer = 0
while H > 0 and d:
  if d:
    katanax = d.popleft()
    if katanax[1] > katana1[0]:
      H -= katanax[1]
      answer += 1
    else:
      break
if 0 < H <= katana1[1]:
  answer += 1
if H > katana1[1]:
  import math
  answer = math.ceil((H - katana1[1]) / katana1[0]) + 1 + answer
print(answer)