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

import java.util.* ;

public class Main {
	public static long[] value = new long[19] ;
	public static void init() {
		for(int i = 1 ; i < 19 ; i++) {
			value[i] = (long)Math.pow(10, i) - (long)Math.pow(10 , i - 1) ;
		}
	}
	public static int digits(long n) {
		int count = 0 ;
		while(n != 0) {
			n /= 10 ;
			count++ ;
		}
		return count ;
	}
	public static long range(long a , long b , long k){
		int sa = digits(a) ;
		int sb = digits(b) ;
		long ans = 0 ;
		if(sa == sb){
			ans = (b - a + 1) * sa * k ;
		}
		else {
			ans += ((long)Math.pow(10 , sa) - a) * sa * k;
			ans += (b - (long)Math.pow(10 , sb - 1) + 1) * sb * k ;
			if(sb - sa > 1) {
				for(int i = sa + 1 ; i < sb ; i++) {
					ans += (value[i] * i * k) ;
				}
			}
		}
		return ans ;
	}
	public static long biRearch(long w, long m , long k) {
		long left = m , right = left + w / k + 3, last = 0;
		while(left <= right){
			long mid = left + ( (right - left) >> 1 ) ;
			long rangeValue = range(m, mid, k) ;
			if(rangeValue <= w) {
				left = mid + 1 ;
				last = mid ;
			}
			else {
				right = mid - 1 ;
			}
		}
		if(last != 0) {
			last = last - m + 1 ;
		}
		return last ;
	}
	public static void main(String[] args) {
		Scanner cinScanner = new Scanner(System.in) ;
		init();
		while(cinScanner.hasNext()) {
			long w = cinScanner.nextLong() ;
			long m = cinScanner.nextLong() ;
			long k = cinScanner.nextLong() ;
			long ans = biRearch(w, m, k) ;
			System.out.printf("%d%n" , ans) ;
		}
	}
}
