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++ (GCC 5.4.1) (judge verdict: Time Limit Exceeded)

#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <iostream>
typedef long long LL;
using namespace std; 
const long long MaxN = 1e7 + 10;
const long long Mod = 10000000;
long long N, B[MaxN];
long long Ans = 2147483647;
long long Get(long long A) {
	long long Cnt = 0;
	while(A) {
		Cnt += (LL)(A % 10);
		A /= (LL)10;
	}
	return Cnt;
}
int main() {
//	freopen("1.txt", "r", stdin);
    clock_t St, Et;  
    St = clock();  
    scanf("%lld", &N);
    srand(time(NULL));
    while(1) {
    	Et = clock();
 		double Time = (Et - St) / CLOCKS_PER_SEC; 
 		if(Time >= 1.2) break;
 		long long Now = rand() % Mod;
		if(!Now) continue; 
 		if(B[Now]) continue;
 		B[Now] += 1;
 		long long L = Get((N * Now));
 		Ans = min(L, Ans); 
    } 	
    printf("%lld", Ans);
}