Mister B once received a gift: it was a book about aliens, which he started read immediately. This book had c pages.

At first day Mister B read v_0 pages, but after that he started to speed up. Every day, starting from the second, he read a pages more than on the previous day (at first day he read v_0 pages, at second — v_0 + a pages, at third — v_0 + 2a pages, and so on). But Mister B is just a human, so he physically wasn't able to read more than v_1 pages per day.

Also, to refresh his memory, every day, starting from the second, Mister B had to reread last l pages he read on the previous day. Mister B finished the book when he read the last page for the first time.

Help Mister B to calculate how many days he needed to finish the book.


-----Input-----

First and only line contains five space-separated integers: c, v_0, v_1, a and l (1 ≤ c ≤ 1000, 0 ≤ l < v_0 ≤ v_1 ≤ 1000, 0 ≤ a ≤ 1000) — the length of the book in pages, the initial reading speed, the maximum reading speed, the acceleration in reading speed and the number of pages for rereading.


-----Output-----

Print one integer — the number of days Mister B needed to finish the book.


-----Examples-----
Input
5 5 10 5 4

Output
1

Input
12 4 12 4 1

Output
3

Input
15 1 100 0 0

Output
15



-----Note-----

In the first sample test the book contains 5 pages, so Mister B read it right at the first day.

In the second sample test at first day Mister B read pages number 1 - 4, at second day — 4 - 11, at third day — 11 - 12 and finished the book.

In third sample test every day Mister B read 1 page of the book, so he finished in 15 days.

Difficulty: interview

Starter code:

Solutions:
read = lambda: map(int, input().split())
c, v0, v1, a, l = read()
cur = 0
cnt = 0
while cur < c:
    cur = max(0, cur - l)
    cur += min(v1, v0 + a * cnt)
    cnt += 1
print(cnt)

c,v0,v1,a,l = map(int,input().split())
cnt = 0
ans = 0
v = v0
while(cnt < c):
	cnt += v
	if(ans != 0):
		cnt -= l
	if(v + a < v1):
		v += a
	else:
		v = v1
	ans += 1
print(ans)

import math
c, v0,v1,a,l = list(map(int, input().split()))
n = 0
ans = 0
while n < c:
    ans+=1
    if n>0:
        n-=l
    n+=v0
    if v0 < v1:
        v0 = min(v0+a, v1)
print(ans)



from sys import stdin, stdout

c, v0, v1, a, l = map(int, stdin.readline().split())
cnt = 0 
ans = 0

while cnt < c:
    cnt += v0
    v0 = min(v0 + a, v1)
    ans += 1
    
    if cnt >= c:
        break
    
    cnt -= l


stdout.write(str(ans))

3

def read_ints():
	return [int(i) for i in input().split()]

c, v0, v1, a, l = read_ints()
s = 0
d = 1

while s < c:
	s = min(s + v0, c)
	if s == c:
		break
	v0 = min(v0 + a, v1)
	s -= l
	d += 1

print(d)

c,v0,v1,a,l=map(int,input().split())
n=0
while c > 0:
    c-=v0
    v0=min(v0+a,v1)
    if n > 0:
        c+=l
    n+=1
print(n)

c, v0, v1, a, l = map(int, input().split())
ans, cur = 1, v0
while cur < c:
    v0 = min(v1, v0 + a)
    cur += v0 - l
    ans += 1

print(ans)

c, v0, v1, a, l = map(int, input().split())

ans = 0
while c > 0:
	if ans: c += l
	c -= min(v0, v1)
	v0 += a
	ans += 1
print(ans)

line = input()
nrs = list(map(int, line.split(' ')))
c = nrs[0]
v0 = nrs[1]
v1 = nrs[2]
a = nrs[3]
l = nrs[4]
pages_read = v0
days = 1
pages = v0
while pages_read < nrs[0]:
    pages += a
    if pages > v1:
        pages = v1
    pages_read -= l
    pages_read += pages
    days += 1

print(days)


def list_input():
    return list(map(int,input().split()))
def map_input():
    return map(int,input().split())
def map_string():
    return input().split()
    
c,v0,v1,a,l = map_input()
cur = 0
cnt = 0
while cur < c:
    if cnt != 0:
        cur += min(v1,v0+cnt*a)-l
    else:
        cur += min(v1,v0+cnt*a)
    cnt += 1
print(cnt)    

c, v1, v2, a, l = map(int, input().split())
read = 0
res = 0
vc = v1
while read < c:
    back = min(read, l)
    #read -= back
    read += vc - back
    vc = min(vc + a, v2)
    res += 1
print(res)

def solve(inp):
    c, v0, v1, a, l = list(map(int, inp.split(" ", 4)))
    pages_read = 0
    days_passed = 0
    while pages_read < c:
        pages_read += v0 - min(l, pages_read)
        days_passed += 1
        v0 = min(v0 + a, v1)
    return days_passed


def __starting_point():
    print(solve(input()))

__starting_point()


c, v0, v1, a, l = list(map(int, input().split()))

v = v0
t = 1
last = v0

if last >= c:
    print(1)
    return

while last < c:
    v = min(v1, v0 + t * a) - l
    last += v
    t += 1

print(t)


c, v0, v1, a, l = map(int, input().split())
x = 0
i = 0
while x < c:
	x += min(v0 + a*i, v1) - (l * (i > 0))
	i+=1
print(i)

c, v0, v1, a, l = map(int, input().split())
cur = v0
rem = c
tmp = 0
res = 0
while rem > 0 :
    res += 1
    rem = rem - (cur - tmp)
    cur = min(cur + a, v1)
    tmp = l
print(res)

'''input
5 5 10 5 4
'''
c, v0, v1, a, l = list(map(int, input().split()))
p = 0
d = 0
while True:
	p += min(v1, v0 + a*d)
	d += 1
	if p >= c:
		print(d)
		break
	p -= l



#!/usr/bin/env python3
import sys

def main():
    c, v0, v1, a, l = list(map(int, sys.stdin.readline().split()))
    day = 0
    v = v0
    read = 0
    while read < c:
        day += 1
        read = max(read - l, 0) + v
        v = min(v + a, v1)
    print(day)


def __starting_point():
    main()

__starting_point()

c, v0, v1, a, l = [int(i) for i in input().split()]
if v0 >= c:
    print(1)
    return
else:
    d = 1
    cnt = c - v0
    ca = 0
    while cnt > 0:
        ca += a
        cr = v0 + ca
        if cr > v1:
            cr = v1
        cnt -= (cr - l)
        d += 1
    print(d
          )
        


c, v, v1, a, l = map(int, input().split())

for i in range(1, 1000000):
    c -= v
    
    if i > 1:
        c += l
        
    if c <= 0:
        print(i)
        break
    
    v += a
    v = min(v, v1)

c, v0, v1, a, l = map(int, input().split(" "))

days = 0

while c > 0:
    if days > 0:
        c += l
    c -= v0
    v0 += a
    if v1 < v0:
        v0 = v1
    days += 1

print(days)

c, v0, v1, a, l = list(map(int, input().split()))

v = v0;

read = v;
day = 1;
v += a
v = min(v, v1)


if(read >= c):
    print(day)
    return;


while(True):
    day +=1;
    read += v - l

    v+=a
    v = min(v, v1)
    if(read >= c):
        print(day)
        return;



c, v0, v1, a, l = list(map(int, input().split()))

ans = 0
v = v0
p = 0
while p < c:
    p = max(p - l, 0)
    p += v
    v = min(v + a, v1)
    ans += 1

print(ans)


c, v0, v1, a, l = [int(i) for i in input().split()]

i, d = 1, 0

while 1:
    if d > 0: i -= l
    v = min(v0 + d * a, v1)
    d += 1
    i += v
    if i > c: break

print(d)


I = lambda : list(map(int, input().split()))
c, v0, v1, a, l = I()
rd = 0
day = 0
while (rd < c):
    canread = min(v0 + day*a, v1)
    start = max(rd-l, 0)
    rd = start + canread
    day += 1

print(day)


import sys

input = sys.stdin.readline

c, v0, v1, a, l = map(int,input().split())

day = 0
read = 0

while True:
    if (read >= c):
        break
    if (v0 + a * day < v1):
        read += v0 + a * day
    else:
        read += v1
    if (day > 0):
        read -= l
    day += 1

print(day)