자릿수 곱하기

B진법과 목표 N이 주어질 때, B진법 자릿수들의 곱이 N이 되는 가장 작은 양의 정수를 찾거나 존재하지 않음을 판별한다.

어려움8정수론동적 계획법그리디수학아직 제출이 없습니다시간 제한3초메모리 제한512 MB

문제

양의 정수의 각 자리 숫자를 모두 곱하면 음이 아닌 정수가 나온다. 10진법에서 이 규칙은 함수 ff를 정의한다. 예를 들어 f(38)=3×8=24f(38) = 3 \times 8 = 24이다.

같은 규칙을 다른 진법에도 적용할 수 있다. 80을 3진법으로 쓰면 2222이므로 f3(80)=2×2×2×2=16f_3(80) = 2 \times 2 \times 2 \times 2 = 16이다.

이제 반대 방향의 문제를 푼다. 진법 BB와 목표값 NN이 주어질 때, fB(X)=Nf_B(X) = N을 만족하는 가장 작은 양의 정수 XX를 구하라. 여기서 fB(X)f_B(X)XXBB진법으로 썼을 때 각 자리 숫자의 곱이다.

입력

첫째 줄에 두 정수 BBNN이 공백으로 구분되어 주어진다. (2<B100002 < B \le 10000, 0<N<2630 < N < 2^{63})

출력

fB(X)=Nf_B(X) = N을 만족하는 가장 작은 양의 정수 XX를 10진법으로 출력한다. 그런 XX가 없으면 impossible을 출력한다. XX가 존재하는 입력에서는 항상 X<263X < 2^{63}이다.