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

public class B {
    private Scanner sc;
    long w;
    long k;
    long m;
    long x = 0;
    long z = 0;
    long p;
    long h;
    long r = 1;
    long ans = 0;

    public static void main(String[] args) throws Exception {
        B cl = new B();
        cl.input();
        cl.solve();
        cl.output();
    }

    public void input() throws Exception {
        sc = new Scanner(System.in);
//        sc = new Scanner(new File("input.txt"));
        w = sc.nextLong();
        m = sc.nextLong();
        k = sc.nextLong();
    }

    public void solve() {
        h = m;
        while (h > 0) {
            h = h / 10;
            x++;
        }
        for (long i = 0; i < x; i++) {
            z = z + (9 * r);
            r *= 10;
        }
        p = z - m + 1;
        // first
        if ((w / x / k) >= p) {
            //System.out.println("X="+x+" W="+w+" ANS+="+p);
            w = w - (p * k * x);
            ans = ans + p;
        }
        else {
            //System.out.println("X="+x+" W="+w+" ANS+="+(w / k / x));
            ans = ans + (w / k / x);
            w = w - ((w / k / x) * k * x);
            return;
        }
        //System.out.println("ANS = "+ans);
        // middle
        p = (z + (9 * r)) - z;
        z = z + (9 * r);
        x++;
        while ((w / x / k) >= p) {
            //System.out.println("*X="+x+" W="+w+" ANS+="+p);
            //System.out.println("---> X="+x+"  Z="+z+"  P="+p);
            ans = ans + p;
            w = w - (x * p * k);
            r *= 10;
            x++;
            p = (z + (9 * r)) - z;
            z = z + (9 * r);
            //System.out.println("ANS = "+ans);
        }
        // last
        //System.out.println("X="+x+" W="+w+" ANS+="+(w / k / x));
        ans = ans + (w / x / k);
        w = w - ((w / x / k) * x * k);
        //System.out.println("ANS = "+ans);

    }

    public void output() {

        System.out.println(ans);
    }
}