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.
The first line contains three integers *w* (1 ≤ *w* ≤ 10<sup class="upper-index">16</sup>), *m* (1 ≤ *m* ≤ 10<sup class="upper-index">16</sup>), *k* (1 ≤ *k* ≤ 10<sup class="upper-index">9</sup>).

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.
import sys

def main(lines):
    '''
    I -  Making Sequences is Fun
    
    w: limit
    m: starting number
    k: cost weight

    cost new n element : S(n)∙k
    S(n): the numbers of the n's digits in the decimal base ex.: S(893) = 3, S(114514) = 6
    '''
    w,m,k = list(map(int, lines[0].split()))

    max_length = 0

    available_digits = int(w/k)

    while available_digits > 0:
        current_cost_per_n = len(str(m))

        same_cost_until = 10**(current_cost_per_n)

        usable_numbers = same_cost_until - m
        m = same_cost_until        
        use_digits = usable_numbers * current_cost_per_n

  
        if available_digits >= use_digits:
            max_length += use_digits
            available_digits -= use_digits
            
        else:
            max_length+=int(available_digits/current_cost_per_n)
            available_digits = 0
            

    print(max_length)




if __name__ == "__main__":
    main(sys.stdin.readlines())
		 	 			   		 	    	 	 	 	    	