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;
using LL = long long;
const double EPS = 1e-8;
LL g_c, g_m, g_k;
bool input() {
  cin >> g_c >> g_m >> g_k;
  if (cin.eof()) return false;
  return true;
}
LL get_bit(LL n) {
  LL ans = 0;
  while (n > 0) {
    n /= 10;
    ++ans;
  }
  return ans;
}
void solve() {
  LL ans = 0;
  LL nb = get_bit(g_m);
  LL mn = g_m;
  LL mx = 1;
  for (int i = 1; i <= nb; ++i) mx *= 10;
  while (true) {
    LL t = g_c / nb;
    if (t && t / g_k && t / g_k / (mx - mn)) {
      LL cost = nb * (g_k) * (mx - mn);
      ans += (mx - mn);
      g_c -= cost;
      ++nb;
      mn = mx;
      mx *= 10;
    } else
      break;
  }
  while (mx > mn) {
    LL num = (mx - mn) / 2;
    if (num == 0) {
      LL t = g_c / nb;
      if (t && t / g_k) {
        LL cost = nb * g_k;
        ++ans;
        g_c -= cost;
      }
      break;
    }
    LL t = g_c / nb;
    if (t && t / g_k && t / g_k / num) {
      LL cost = nb * g_k * num;
      mn += num;
      ans += num;
      g_c -= cost;
    } else
      mx -= num;
  }
  cout << ans << endl;
}
int main() {
  while (input()) {
    solve();
  }
  return 0;
}
