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;
using pii = pair< int, int>;


bool flag[1000000];

int main() {
    int n;
    scanf("%d", &n);

    deque< pii> deq;
    deq.push_back(make_pair(1, 1));

    while (true) {
        pii z = deq.front();
        deq.pop_front();

        if (flag[z.second]) continue;
        flag[z.second] = true;
        
        if (z.second == 0) {
            printf("%d\n", z.first);
            break;
        }
        deq.push_back(make_pair(z.first + 1, z.second + 1));
        deq.push_front(make_pair(z.first, z.second * 10 % n));
    }
}