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 Kotlin (1.0.0) (judge verdict: Wrong Answer)

fun main(arg: Array<String>) {
    val k = readLine()!!.toInt()
    val po: Array<Int?> = Array(k) { null }
    po[1] = 1
    var searchSet = setOf(1)
    while (!searchSet.isEmpty()) {
        val newSet: MutableSet<Int> = mutableSetOf()
        searchSet.forEach {
            val next1 = (it * 10) % k
            val next2 = (it + 1) % k
            val nextPo1 = po[next1]
            val nextPo2 = po[next2]
            if (nextPo1 == null) {
                po[next1] = po[it]
                newSet.add(next1)
            } else if (nextPo1 > po[it]!!) {
                po[next1] = po[it]
            }
            if (nextPo2 == null) {
                po[next2] = po[it]!! + 1
                newSet.add(next2)
            } else if (nextPo2 > po[it]!! + 1) {
                po[next2] = po[it]!! + 1
            }
        }
        searchSet = newSet
    }
    println(po[0])
}