# 최서영
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>)) # **신박도장**