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 power(long long m, long long n) {
  long long a = 1;
  for (long long i = 0; i < n; i++) {
    a *= 10;
  }
  return a;
}
int main() {
  long long k, i, j;
  long long w, m, fans;
  cin >> w >> m >> k;
  long long po = m;
  long long no = 0;
  while (po) {
    po /= 10;
    no++;
  }
  long long ans = 0;
  long long di = 0;
  while (1) {
    fans = power(10, no) - m;
    di = w;
    long long fans2 = fans;
    long long b = 0, r = 0;
    while (fans2) {
      fans2 /= 10;
      b++;
    }
    long long kd = k;
    while (kd) {
      kd /= 10;
      r++;
    }
    long long gh = w;
    long long hg = 0;
    while (gh) {
      gh /= 10;
      hg++;
    }
    if (hg + 1 < r + b) break;
    w -= (fans * (no)*k);
    if (w < 0) {
      break;
    }
    ans += (power(10, no) - m);
    m = power(10, no);
    no++;
  }
  long long ji = (di / (no));
  ji /= k;
  ans += ji;
  cout << ans;
  return 0;
}
