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.io.*;
import java.util.*;

public class P2 {
	static long getDigitCount (int digits, long start) {
		if (digits < 1)
			return 0;
		long ret = (long)(9 * Math.pow(10, digits - 1));
		if (start > 0) {
			int temp = digits - 1;
			while (temp > 0) {
				start -= (long)(9 * Math.pow(10, temp - 1));
				temp--;
			}
			ret -= (start - 1);
		}
		return ret;
	}
	public static void main (String[] args) {
		Scanner sc = new Scanner (System.in);
		PrintStream op = System.out;
		long W = sc.nextLong();
		long M = sc.nextLong();
		long K = sc.nextLong();
		long nDigits = W / K;
		long temp = M;
		int digits = 0;
		while (temp > 0) {
			digits++;
			temp = temp / 10;
		}
		long ans = 0;
		long n = getDigitCount(digits, M);
		while (nDigits > 0) {
			if (n * digits >= nDigits) {
				ans += (long)(nDigits / digits);
				break;
			}
			else {
				ans += n;
				nDigits -= (n * digits);
				digits++;
			}
			n = getDigitCount(digits, 0);
		}
		op.println(ans);
		sc.close();
	}
}