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.*;
import java.io.*;
public class seqlog{
public static void main(String args[]) throws IOException{
BufferedReader lector = new BufferedReader(new InputStreamReader(System.in));
String tmp[] = lector.readLine().split(" ");
long a =  Long.parseLong(tmp[0]);
long b = Long.parseLong(tmp[1]);
long tt = (long)tmp[1].length();
long c = Long.parseLong(tmp[2]);
long min=0;
long pow[] = new long[20];
pow[0]=1L;
for(int n =1;n<pow.length;n++)pow[n]=10L*pow[n-1];
long max = a/c+2;
while(min<=max){
long mid = (max+min)/2;
long cost = 0;
long k = tt;
long r = pow[(int)k]-b;
long mid2 = mid;
while(mid2>=r){
cost+=k*c*r;
k+=1;
mid2-=r;
r = 9*pow[(int)k-1];
}
if(mid2>0)
cost+=c*k*mid2;
//System.out.println(mid2+" "+cost);
if(cost>a)
max = mid-1;
else
min = mid+1;
}
System.out.println(min-1);
}
}
