Following an old map, you have stumbled upon the Dread Pirate Larry's secret treasure trove!
The treasure trove consists of
You already have at least one key and your map says what other keys can be found inside the various chests. With all this information, can you figure out how to unlock all the chests?
For example, suppose the treasure trove consists of four chests as described below, and you began with exactly one key of type 1:
Chest Number | Key Type To Open Chest | Key Types Inside |
---|---|---|
1 | 1 | None |
2 | 1 | 1, 3 |
3 | 2 | None |
4 | 3 | 2 |
You can open all the chests in this example if you do them in the order 2, 1, 4, 3. If you start by opening chest #1 first, then you will have used up your only key, and you will be stuck.
Input Specification
The first line of the input gives the number of test cases,
This is followed by a line containing
After that, there will be
Output Specification
For each test case, output one line containing Case #x: C1 C2 ... CN
, where
If there are multiple ways of opening all the chests, choose the "lexicographically smallest" way. In other words, you should choose to make
If there is no way to open all the chests, you should instead output one line containing Case #x: IMPOSSIBLE
.
Limits
Time limit: 30 seconds per test set.
Memory limit: 1GB.
All key types will be integers between 1 and 200 inclusive.
Small dataset
In each test case, there will be at most 40 keys altogether.
Large dataset
In each test case, there will be at most 400 keys altogether.
Sample Input
3
1 4
1
1 0
1 2 1 3
2 0
3 1 2
3 3
1 1 1
1 0
1 0
1 0
1 1
2
1 1 1
Sample Output
Case #1: 2 1 4 3
Case #2: 1 2 3
Case #3: IMPOSSIBLE
Comments