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 Rust (1.15.1) (judge verdict: Wrong Answer)

fn get_line() -> String {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    s.trim().to_string()
}

fn readln<T>() -> T
    where
        T: std::str::FromStr,
        <T as std::str::FromStr>::Err: std::fmt::Debug {
    get_line().parse().unwrap()
}

use std::collections::VecDeque;

fn main() {
    let k = readln();

    let mut ds = vec![None; k];
    let mut q = VecDeque::new();
    ds[1] = Some(1);
    q.push_back(1);

    while let Some(i) = q.pop_front() {
        if i == 0 {
            break;
        }

        let j = (i * 10) % k;
        if let None = ds[j] {
            q.push_front(j);
            ds[j] = ds[i];
        }
        let j = (i + 1) % k;
        if let None = ds[j] {
            q.push_back(j);
            ds[j] = Some(ds[i].unwrap() + 1);
        }
    }

    println!("{}", ds[0].unwrap());
}