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>
#define P pair<int,int>
using namespace std;
bool bj[1000001];
int main()
{
int k;
scanf("%d",&k);
deque<P> q;
q.push_back(make_pair(1,1));
while(!q.empty())
{
  P a=q.front();
  q.pop_front();
  if(bj[a.first])
    continue;
  bj[a.first]=1;
  if(!a.first)
  {
  	printf("%d\n",a.second);
  	return 0;
  }
  q.push_front(make_pair((a.first*10)%k,a.second));
  q.push_back(make_pair((a.first+1)%k,a.second+1));
}
return 0;
}