새로운 연산자

시간 제한2초메모리 제한128 MB

문제

양의 정수 N에 대해 다음 함수를 정의한다.

  • Sum(N)N의 모든 자리수를 더한 값이다.
  • Prod(N)N의 모든 자리수를 곱한 값이다.
  • Prod3(N)N의 자리수 중 가장 큰 세 개를 곱한 값이다. N이 세 자리보다 작으면 Prod3(N) = Prod(N)이다.
  • Smallest(N)N의 가장 작은 자리수이다.
  • First(N)N의 맨 앞 자리수이다.

두 값 XY에 대해 연산자 @를 다음과 같이 정의한다.

X @ Y = 5 * Prod3(X) + First(X) * Sum(Y) + Smallest(Y)

다음 등식이 성립한다.

  • Sum(47) = 4 + 7 = 11
  • Prod(2322) = 2 * 3 * 2 * 2 = 24
  • Prod3(2322) = 3 * 2 * 2 = 12
  • Prod3(47) = Prod(47) = 4 * 7 = 28
  • Smallest(427) = 2
  • First(427) = 4
  • 12034 @ 217 = 5 * (4 * 3 * 2) + 1 * (2 + 1 + 7) + 1 = 131

올바른 식은 다음 규칙으로만 만들 수 있다.

  1. 입력으로 주어진 X는 올바른 식이다.
  2. AB가 올바른 식이면 A @ B도 올바른 식이다.
  3. 위 규칙으로 만들 수 없는 식은 올바른 식이 아니다.

X와 목표값 G가 주어질 때, 값이 G가 되는 올바른 식에 들어가는 @ 연산자의 최소 개수를 구하라. 만들 수 없다면 -1을 출력한다.

입력

첫째 줄에 XG가 주어진다. X1,000,000보다 작거나 같은 자연수이고, G2,000,000,000보다 작거나 같은 자연수이다.

출력

값이 G가 되는 올바른 식을 만들 수 있다면 그 식에 들어가는 @ 연산자의 최소 개수를 출력한다. 만들 수 없다면 -1을 출력한다.