트론(Tron)의 세계에서 쓰이는 기본 화폐 단위는 트론크(Tronk) 입니다. 트론크의 잔돈을 만드는 일은 생각보다 까다롭습니다. 미국에는 각각 1달러의 $\frac{1}{2}$, $\frac{1}{4}$, $\frac{1}{10}$, $\frac{1}{20}$, $\frac{1}{100}$ 의 가치를 가지는 하프달러, 쿼터, 다임, 니켈, 페니가 있습니다. 그러나 트론의 세계에는 모든 양의 정수의 역수에 해당하는 동전이 하나씩, 무한히 많이 존재합니다.
$$1,\ \frac{1}{2},\ \frac{1}{3},\ \frac{1}{4},\ \frac{1}{5},\ \dots$$
즉, 가장 작은 동전이라는 것이 존재하지 않습니다.
정확히 $n$ 개의 동전을 사용하여 1 트론크의 잔돈을 만드는 서로 다른 방법은 몇 가지일까요? 다시 말해, 합이 정확히 $1$ 이 되도록 $n$ 개의 단위분수를 고르는 방법의 수를 구하는 것입니다. 예를 들어 $n = 3$ 일 때는 정확히 세 가지 방법이 있습니다.
$$\frac{1}{3}+\frac{1}{3}+\frac{1}{3},\qquad \frac{1}{2}+\frac{1}{3}+\frac{1}{6},\qquad \frac{1}{2}+\frac{1}{4}+\frac{1}{4}.$$
여기에 두 가지 제약이 추가됩니다.
보고하는 모든 조합은 정확해야 합니다. 부동소수점 오차와 매우 작은 동전(예: $\frac{1}{10000000}$) 때문에 동전들의 합이 $1$ 에 임의로 가깝게 다가갈 수는 있지만, 합이 정확히 $1$ 이 아니라면 그 조합은 틀린 것입니다.
첫 번째 줄에는 테스트 케이스의 수 $T$ ($T \le 20$) 가 주어집니다. 이어지는 $T$ 개의 줄에는 각각 하나의 테스트 케이스가 다음 순서로 주어집니다.
어떤 유효한 조합도 $\frac{1}{10000000}$ 보다 작은 동전을 필요로 하지 않는다고 가정해도 됩니다. 즉, 등장할 수 있는 모든 분모는 $10{,}000{,}000$ 이하입니다.
각 테스트 케이스에 대해 다음 형식으로 결과를 출력합니다.
먼저 머리글 줄을 출력합니다.
Case i : Number of coins = n; Repetitions = r; Forbidden = [f_1 f_2 ... f_k]
여기서 $i$ 는 $1$ 부터 시작하는 테스트 케이스 번호이며, 금지된 동전은 입력에서 주어진 순서대로 나열합니다(없으면 빈 대괄호 [] 를 씁니다).
그다음 유효한 각 조합을 한 줄에 하나씩 출력합니다. 한 줄 안에서는 동전의 분모를 비내림차순으로 공백 하나로 구분하여 나열합니다. 예를 들어 집합 ${\frac{1}{6}, \frac{1}{3}, \frac{1}{2}}$ 는 2 3 6 으로 씁니다. 조합들은 분모 수열을 앞에서부터 원소별로 비교하는 사전식 오름차순으로 나열해야 합니다.
마지막으로 유효한 조합의 개수 $C$ 에 대해 C solutions found 줄을 출력합니다. 유효한 조합이 하나도 없으면 조합 줄 없이 No solutions found 를 대신 출력합니다.