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>
const int N = 1e5+9;
using namespace std;
deque<pair<int, long long> > q;
int k;
bool vis[N];
 
int main() {
  scanf("%d", &k);
  q.push_back({1, 1});
  while(!q.empty()) {
    pair<int, long long> tp = q.front(); q.pop_front();
    if(!tp.first) {
      printf("%d\n", tp.second);
      break;
    }
    if(vis[tp.first]) continue;
    vis[tp.first] = 1;
    q.push_front({tp.first*10%k, tp.second});
    q.push_back({(tp.first+1)%k, tp.second+1});
  }
  return 0;
}