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;
public class sequece {

	public static int count( long  number)
	{
		     int no_digit = 0;
			while(number != 0)
			{
				no_digit++;
				number = number/10;
			}
		return no_digit;
	}
	//////////////////////////
	public static  long binary(long  start , long last ,long  max,int no_digit)
	{
	 long middle = (start+ last)/2,count = 0;
	while(start <= last)
	{
	     long cost = (middle - start +1) * (long  )no_digit;
	    if(cost < max)
	    {
	        count += (middle - start +1);
	        max -= cost;
	        start = middle + 1;
	    }
	    else if(cost == max)
	      {
	        count += (middle - start +1);
	        return count;
	      }
	      else
	    {
	        last = middle - 1;
	    }
	    middle = (start+ last)/2;

	}
	return count;
	}
	
	static Scanner input = new Scanner(System.in);
	public static void main(String[] args) {
		long max , start , k,max_number = 0,check;
		max = input.nextLong();
		start  = input.nextLong();
		k = input.nextLong();
		max = max/k;
	    int no_digit = count(start);
	    for( int i = no_digit ; i <= 17 ;i++)
	    {
	         check = (long) ((Math.pow(10, i) - start )*i);
	         if(check < max)
	         {
	             max_number += check/i;
	             max -= check;
	         }
	         else if (check == max)
	         {
	             max_number += check/i;
	             System.out.println(max_number);
	            return ;
	         }
	         else
	         {
	             check = binary(start,(long)(Math.pow(10, i)-1),max,i);
	              max_number += check;
	              System.out.println(max_number);
	             return;
	         }

	        start = (long) Math.pow(10, i);
	    }

	}

}