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 static java.lang.System.in;

import java.io.IOException;


public class B219 {
    static byte[] buffer = new byte[8192];
    static int offset = 0;
    static int bufferSize = 0;
    public static void main(String args[])throws IOException
    {
        long w = readLong();
        long m =readLong();
        long k = readLong();
        long  cost =0;
        String l = "" +m;
        long ans =0;
        int len = l.length();
         long nine =  9*(long)Math.pow(10, len-1);
         long digits = (long)Math.pow(10, len);
         w=w/k;
          long c = digits - m;
          ans+=c;
          cost += c*len;
         // System.out.println(c);
        while (cost<=w)
        {
               len++;
               nine =  9*(long)Math.pow(10, len-1);
               cost += len*nine;
               ans+=nine;
               //System.out.println(ans);
        }
        if (cost == w)
        {
            System.out.println(ans);
        }
        else
        {
            if (len == l.length())
            {
                ans = w/(len);
            }
            else
            {
                ans -= nine;
                 cost -= len*nine;
                 cost = w-cost;
                 ans += cost/(len);
                
            }
            System.out.println(ans);
        }
        
    }
    
    
    static long readLong() throws IOException{
        long number = 0;
        int neg = 1;
        if(offset==bufferSize){
            offset = 0;
            bufferSize = in.read(buffer);
        }
        for(;buffer[offset]<0x30 || buffer[offset]=='-'; ++offset)
        {
            if (buffer[offset]=='-')
                neg = -1;
            if(offset==bufferSize-1){
                offset=-1;
                bufferSize = in.read(buffer);
            }
        }
        for(;offset<bufferSize && buffer[offset]>0x2f;++offset){
            number = number*0x0a+buffer[offset]-0x30;
            if(offset==bufferSize-1){
                offset = -1;
                bufferSize = in.read(buffer);
            }
        }
        ++offset;
        return number*neg;
    }

}
