박테리아
시간 제한2초메모리 제한512 MB
1e9 이하의 n과 m이 주어질 때, 제곱하기 또는 소수로 나누기 연산만으로 n을 m으로 바꾸는 최단 연산 순서를 구하거나 불가능하면 Impossible을 출력한다.
문제
어린 생물학자 안톤은 예쁜 유리 플라스크에서 마리의 박테리아를 기르고 있다.
안톤은 플라스크에 여러 시약을 넣어 박테리아의 수를 조절할 수 있다. 가 소수일 때, 안톤은 집에서도 어떤 물질을 만들어 플라스크에 넣으면 박테리아의 수가 정확히 배 줄어들게 할 수 있다. 만약 박테리아의 수가 로 나누어지지 않으면 그 물질의 효과는 불분명해지고 실험의 과학적 정확성을 잃게 된다. 안톤은 이것을 원하지 않기 때문에 박테리아의 수가 로 나누어질 때만 그 물질을 사용한다.
또한 안톤의 부엌에는 리세르그산 디에틸아미드가 무한히 있다. 박테리아가 들어 있는 플라스크에 리세르그산 디에틸아미드를 넣으면 박테리아의 수가 제곱된다.
안톤은 플라스크에 마리의 박테리아가 있기를 원한다. 그는 물질을 플라스크에 가능한 한 적은 횟수로 넣고 싶어 한다. 그를 도와주자.
입력
입력 파일에는 두 개의 자연수 과 ()이 주어진다. 이는 안톤의 플라스크에 있는 박테리아의 처음 수와 원하는 수이다.
출력
만약 정확히 마리의 박테리아를 얻는 것이 불가능하면 출력 파일에 <<Impossible>>이라는 단어를 출력한다.
원하는 결과를 얻을 수 있다면, 그 결과를 얻을 수 있게 하는 가장 짧은 물질 투입 순서를 다음 형식으로 출력한다. 물질 투입은 수 로, 물질 투입은 수 0으로 인코딩된다. 수들은 공백 또는 줄 바꿈으로 구분되어야 한다.
만약 마리의 박테리아를 남기는 가장 짧은 물질 투입 순서가 여러 개 존재한다면, 그 중 아무거나 하나를 출력한다.
힌트
첫 번째 예제에서 안톤은 플라스크에 물질을 세 번 넣어야 한다. 먼저 \ft{}를 넣어 박테리아의 수를 절반으로 줄여 6마리로 만들고, 그 다음 을 넣어 박테리아의 수를 제곱해 36마리로 만들고, 마지막으로 다시 \ft{}를 넣어 박테리아의 수를 2로 나누어 18마리로 만든다.