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
from math import log

w,m,k = [int(i) for i in raw_input().split()]

def S(n):
    return len(str(n))

def m_cost(k,m):
    return S(m)*k

def partial_cost(k,m,n):
    return m_cost(k,m)*(n-m+1)

def cost(k, m, n):
    if n == m-1:
        return 0
    sm = S(m)
    sn = S(n)
    total = 0
    for i in range(sm, sn):
 
        if i==sm:
            total += partial_cost(k,m, 10**i-1)
            
        else:
            total += partial_cost(k, 10**(i-1), 10**i-1)
        m = 10**(sn-1)
 
    total += partial_cost(k,m, n)
    return total


def binary(k,m,n,w):
    if cost(k,m,n)<=w and cost(k,m,n+1)>w:
        
        return 0
    elif cost(k,m,n)<w:
        return -1
    elif cost(k,m,n)>w:
        return 1
    else:
        assert False
    

def search(k,m,max_cost,upper):
    last_guess = upper
    lower = m-1
    
    while not binary(k,m,last_guess,w) == 0:

        if binary(k,m,last_guess,w)<0:
            lower = last_guess
            last_guess = (lower+upper)//2
        elif binary(k,m,last_guess,w)>0:
            upper = last_guess
            last_guess = (lower + upper)//2

    return last_guess

def solve(w,k,m):
    upper = m+w//(m_cost(k,m))+1
    return search(k,m,w,upper)

print solve(w,k,m)-m+1

