마술사와 조수가 다음 카드 마술을 한다. 조수는 관객 한 명에게 표준 52장 덱에서 카드 5장을 고르게 한다. 값은 A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K 순이고, 무늬는 C(클럽), D(다이아몬드), H(하트), S(스페이드) 순이다. 조수는 5장 중 한 장을 관객에게 돌려주고, 남은 4장을 한 장씩 차례로 마술사에게 건넨다. 마술사는 건네받은 4장만 보고 관객이 들고 있는 다섯 번째 카드를 맞힌다.
카드 전체 순서는 값을 먼저 비교하고, 값이 같으면 무늬를 비교해 정한다. 둘 다 위에 적은 순서를 따르므로 전체 순서는 AC, AD, AH, AS, 2C, 2D, 2H, 2S, ..., KC, KD, KH, KS이다.
마술사는 이렇게 카드를 알아낸다.
마술사가 QH, 10D, 10C, 4D를 이 순서로 받았다고 하자. 뒤 세 장 중 가장 작은 카드는 4D이고 세 번째에 있으므로 Q의 값 12에 3을 더한다. 큰 두 장인 10D와 10C가 오름차순이 아니므로 3을 또 더한다. 12 + 3 + 3 = 18이고 13을 빼면 5이므로 관객이 들고 있는 카드는 5H다.
이 문제에서는 조수가 하는 일을 프로그램으로 옮긴다. 카드 5장이 주어지면 관객에게 돌려줄 한 장과 마술사에게 건넬 나머지 네 장의 순서를 정한다.
첫째 줄에 데이터 세트의 개수인 양의 정수 n이 주어진다. 다음 n개의 줄에 데이터 세트가 한 줄에 하나씩 주어진다. 각 데이터 세트는 공백으로 구분한 카드 5장이다. 카드는 한 글자나 두 글자인 값 뒤에 한 글자인 무늬를 붙여 쓴다. 한 데이터 세트의 카드 5장은 서로 다르다.
데이터 세트마다 한 줄씩 출력한다. 줄 맨 앞에는 데이터 세트 번호를 붙인 Problem 1: , Problem 2: 형태의 접두사를 쓰고, 이어서 카드 5장을 공백 하나로 구분해 적는다. 첫 번째 카드는 관객에게 돌려주는 카드이고, 나머지 네 장은 마술사에게 건네는 순서대로 적는다.
마술사의 절차를 만족하는 배열이 여러 개일 수 있다. 그중 사전순으로 가장 앞서는 하나만 출력한다. 두 배열은 같은 자리의 카드를 위에서 정한 카드 전체 순서로 앞에서부터 비교하고, 처음 달라지는 자리의 카드가 더 작은 쪽이 앞선다.