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.
The first line contains three integers *w* (1 ≤ *w* ≤ 10<sup class="upper-index">16</sup>), *m* (1 ≤ *m* ≤ 10<sup class="upper-index">16</sup>), *k* (1 ≤ *k* ≤ 10<sup class="upper-index">9</sup>).

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.
#include <cstdio>
#include <vector>
#include <algorithm>
#include <deque>
#include <iostream>
#include <cstring>
#include <set>
#include <map>
using namespace std;

int gcd(int a, int b)
{
    while(a)
    {
        b %= a;
        swap(a, b);
    }
    return b;
}

int main()
{
    int t, n, k, a[50], s, ts;
    scanf("%d", &t);
    for(int i = 1; i <= t; ++i)
    {
        scanf("%d%d", &n, &k);
        s = 0;
        for(int j = 0; j < n; ++j)
        {
            scanf("%d", a + j);
            s += a[j];
        }
        sort(a, a + n);
        ts = 0;
        for(int j = 0, p = 2; j < n; ++j)
        {
            if(j == 0 && a[j] == 0)
                a[j] == 0;
            else if(a[j] <= k)
                a[j] = k;
            else
            {
                for(int q = max(p, a[j] / k); ; ++q)
                {
                    bool ok = true;
                    for(int m = 0; m < j; ++m)
                        ok &= gcd(a[m] / k, q) == 1;
                    if(ok)
                    {
                        a[j] = k * q;
                        p = q + 1;
                        break;
                    }
                }
            }
            ts += a[j];
        }
        printf("Case #%d: %d\n", i, ts - s);
    }
    return 0;
}
