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
#include <bits/stdc++.h>
using namespace std;
long long w, m, k, ans, digit, ori;
void get_ans(long long lft, long long digit) {
  long long res = 1;
  for (int(i) = 0; (i) < digit - 1; i++) res *= 10;
  lft /= k * digit;
  if (ori == digit)
    cout << lft;
  else
    cout << res + lft - m;
  exit(0);
}
int main() {
  cin >> w >> m >> k;
  long long mm = m;
  while (mm) digit++, mm /= 10;
  ori = digit;
  long long mx = 1;
  for (int(i) = 1; (i) <= digit; i++) mx *= 10;
  if (w / (mx - m) / k / digit <= 0)
    get_ans(w, digit);
  else {
    long long cost = (mx - m) * k * digit;
    w -= cost;
  }
  while (true) {
    digit++;
    long long old_mx = mx;
    mx *= 10;
    if (w / (mx - old_mx) / k / digit <= 0)
      get_ans(w, digit);
    else {
      long long cur_cost = (mx - old_mx) * k * digit;
      w -= cur_cost;
    }
  }
  return 0;
}
