A, B = map(int, input().split())
C, D = map(int, input().split())
K = int(input())
# 토카가 집에 도착할 수는 있는가?
# B + (B-K) + (B-2K) + ... >= A
if K > 0: # K = 0이면 무조건 도착할 수 있음
cnt = B // K # B - cnt * K >= 0 인 최대 cnt
tot = B * (cnt + 1) - K * (cnt * (cnt + 1)) // 2 # B + (B-K) + ... + (B - cnt * K)
if tot < A:
print(-1)
exit(0)
# 토카가 집에 도착하는 타이밍이 돌돌이보다 이른가?
def toka_move(time):
if K > 0:
time = min(time, B // K + 1)
return B * time - K * (time * (time - 1)) // 2
ok, ng = 10**12, 0
# 토카가 집에 도착하는 가장 빠른 타이밍
while ok - ng > 1:
mid = (ok + ng) // 2
if toka_move(mid) >= A:
ok = mid
else:
ng = mid
if D*ok < A + C: # 아직 돌돌이가 도착하지 않았다면
print(ok)
else:
print(-1)