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 MakeSequenceFun {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextLong();
        m = sc.nextLong();
        k = sc.nextLong();
        pow[0] = 1L;
        for(int i=1; i<pow.length; i++) pow[i] = 10L*pow[i-1];
        long answer = ans(0, pow[17]);
        System.out.println(answer);
    }
    
    static long ans(long l, long r){
        if(r==l) return l;
        if(r==l+1) return canMake(r)? r : l;
        long m = (l+r)>>1;
        return canMake(m)? ans(m, r) : ans(l, m-1);
    }
    
    static boolean canMake(long length){
        long sum = 0;
        for(int x=0; x<17; x++){
            long start = Math.max(pow[x], m);
            long fin = Math.min(m+length-1, pow[x+1]-1);
            if(fin<start) continue;
            sum += (fin-start+1)*(x+1);
        }
        return sum<=n/k && sum*k<=n;
    }
    
    static long[] pow = new long[18];
    
    static long n, m, k;
    
}
