Problem:
Score : 700 points

Problem Statement

Find the smallest possible sum of the digits in the decimal notation of a positive multiple of K.

Constraints

2 \leq K \leq 10^5

K is an integer.

Input

Input is given from Standard Input in the following format:

K

Output

Print the smallest possible sum of the digits in the decimal notation of a positive multiple of K.

Sample Input 1

6

Sample Output 1

3

12=6×2 yields the smallest sum.

Sample Input 2

41

Sample Output 2

5

11111=41×271 yields the smallest sum.

Sample Input 3

79992

Sample Output 3

36

Solution in C++14 (GCC 5.4.1) (judge verdict: Accepted)

# include <bits/stdc++.h>
using namespace std;
# define eps 1e-8
# define INF 1e20
# define pi  acos(-1.0)
# define MX  100005
struct Node
{
    int x, s;
};

int k;
bool vis[MX];

int main()
{
    scanf("%d",&k);
    deque<Node> Q;
    Q.push_front((Node){1,0});
    while (!Q.empty())
    {
        Node tp = Q.front(); Q.pop_front();
        if (vis[tp.x]) continue;
        vis[tp.x]=1;
        if (tp.x==0)
        {
            printf("%d\n",tp.s+1);
            break;
        }
        Q.push_front((Node){(tp.x*10)%k,tp.s});
        Q.push_back((Node){(tp.x+1)%k,tp.s+1});
    }
    return 0;
}