We'll define S(n) for positive integer n as follows: the number of the n's digits in the decimal base. For example, S(893) = 3, S(114514) = 6.

You want to make a consecutive integer sequence starting from number m (m, m + 1, ...). But you need to pay S(n)·k to add the number n to the sequence.

You can spend a cost up to w, and you want to make the sequence as long as possible. Write a program that tells sequence's maximum length.

Input

The first line contains three integers w (1 ≤ w ≤ 1016), m (1 ≤ m ≤ 1016), k (1 ≤ k ≤ 109).

Please, do not write the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specifier.

Output

The first line should contain a single integer — the answer to the problem.

Examples

Input

9 1 1


Output

9


Input

77 7 7


Output

7


Input

114 5 14


Output

6


Input

1 1 2


Output

0
tail = [0] + [10**i-1 for i in xrange(1, 25)]
dp = [0 for i in xrange(25)]
for i in xrange(1, 25):
    dp[i] = dp[i-1] + i*(9*(10**(i-1)))

def f(x):
    index = 0
    for i in xrange(1, len(tail)):
        if tail[i] > x:
            index = i-1
            break
    res = dp[index] + (index+1)*(x-10**(index)+1)
    #print dp[index], (index+1)*(x-10**(index)+1)
    return res

w,m,k = map(int, raw_input().split())
t = k*f(m-1)

mx = 10**18
mn = 0

while (mx-mn) > 1:
    mid = (mx+mn)/2
    if w+t-k*f(mid) >= 0:
        mn = mid
    else:
        mx = mid
if w+t-k*f(mn) >= 0:
    print mn-m+1
else:
    print 0

