# 최서영
N,m,M,T,R=map(int,input().split())
count=0
time=0
heart=m
while(1):
if m+T> M :
count=-1
print(count)
break
if heart+T<=M:
count+=1
heart+=T
time+=1
elif heart-R>=m:
heart-=R
time+=1
elif heart-R<m:
heart=m
time+=1
if count==N:
break
if count!=-1: print(time)
# 이수영
코드마스터 (**칭찬 도장**! 자세히 보아야 이수영)
N, m, M, T, R = map(int, input().split())
i = 0 # 운동한 시간
cnt = 0 # 총 시간
min = m # 초기/최소맥박 복사
while i < N: # N분 운동하기 전까지
if M - T < min: #최소맥박 + 운동 > 최대
cnt = -1
break
if m+T <= M: # 최대맥박이 아닐때
m += T
i += 1
else: # 최대맥박 넘었을때
m -= R
if(m < min): # 최소맥박보다 낮아졌을때
m = min
cnt += 1
print(cnt)
# 신예지(러블리 최고!)
코린이/러블리
N, m, M, T, R = map(int, input().split()) # 변수 연속으로 입력받기
now = m # 현재 맥박과 초기 맥박 m으로 저장
exer_cnt = 0 # 운동한 시간(분)
cnt = 0 # 총 걸린 시간(분)
while True : **# 러블리가 좋아함.**
if m + T > M: # 운동을 N분 할 수 없을 때
print("-1") # -1 출력
break # 종료
if exer_cnt == N : # 운동한 시간이 N과 같을 때
print(cnt) # 총 걸린 시간 출력
break # 종료
if now < m : # 현재 맥박이 m보다 작으면
now = m # 현재 맥박을 m으로 저장
elif now == m : # 현재 맥박이 m이면
now = now + T # 무조건 운동
exer_cnt += 1 # 운동한 시간 증가
cnt += 1 # 총 걸린 시간 증가
elif now > M - T : # 현재 맥박에 운동을 했을 떄 M을 초과하면
now = now - R # 무조건 휴식
cnt += 1 # 총 걸린 시간 증가
else : # 위에 모두 해당하지 않으면 총 걸린 시간의 최소값을 구해야 하므로
now = now + T # 무조건 운동
exer_cnt += 1 # 운동한 시간 증가
cnt += 1 # 총 걸린 시간 증가
# 박성열
카페배신
Ca 칼슘?
N, m, M, T, R = map(int, input().split())
X = m
T_t = 0
R_t = 0
if m + T > M:
T_t = -1
while 0 <= T_t < N:
if X + T <= M:
X += T
T_t += 1
else:
X-=R
if X < m: X = m
R_t+=1
print([**T_t + R_t**](<https://www.youtube.com/watch?v=an2Jh3ouLz8>)) # **신박도장**