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)

import java.util.*
import kotlin.comparisons.compareValuesBy

fun main(arg: Array<String>) {
    val k = readLine()!!.toInt()
    val po = PriorityQueue<IntPair>()
    val meu = Array<Int?>(k) { null }
    po.add(IntPair(1, 1))
    while (po.isNotEmpty()) {
        val pair = po.poll()
        val i = pair.second
        val next1 = (i * 10) % k
        val next2 = (i + 1) % k
        meu[i] = pair.first
        if (meu[next1] == null) po.add(IntPair(pair.first, next1))
        if (meu[next2] == null) po.add(IntPair(pair.first + 1, next2))
    }
    println(meu[0])
}

class IntPair(val first: Int, val second: Int) : Comparable<IntPair> {
    override fun compareTo(other: IntPair): Int = compareValuesBy(this, other, { it.first })
}