집합의 순열은 집합의 서로 다른 원소를 모두 한 번씩 사용해 만든 나열이다. 예를 들어 {2,3,5}의 순열은 다음과 같다.
위 목록은 사전순으로 정렬되어 있어서, 각 순열을 목록에 등장하는 순서, 즉 위치로 가리킬 수 있다. 3 5 2는 위치 4이고, 5 3 2는 마지막 위치인 6이다.
{b,e,i,n}으로 만들 수 있는 순열은 다음과 같다.
서로 다른 숫자와 알파벳으로 이루어진 집합과 위치가 주어질 때, 그 집합의 순열 중 주어진 위치의 순열을 구하는 프로그램을 작성하시오.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 한 줄이다.
줄의 첫 번째 문자열은 서로 다른 숫자와 알파벳으로 이루어지고, 길이는 최대 10이며 사전순으로 정렬되어 주어진다. 문자열 다음에는 공백을 두고 찾아야 하는 위치가 주어지는데, 이 값은 3,628,800보다 작거나 같은 자연수이다.
입력은 파일의 끝까지 이어진다.
각 테스트 케이스마다 문자열 위치 = 순열 형식으로 한 줄씩 출력한다. 입력으로 받은 문자열과 위치를 그대로 쓰고, 등호 앞뒤에 공백을 하나씩 두며, 순열은 문자 사이에 공백 없이 붙여 쓴다.
문자열의 길이를 n이라 할 때 위치가 n!보다 크면 해당하는 순열이 없으므로, 순열 자리에 No permutation을 출력한다.