This page is still under construction.

Parts of this page are still being built. What you see may change.

Shuffled Anagrams

Interview

Memory limit1024 MB

Summary
Given a string, output a permutation of its letters with no letter in its original position, or report that none exists.
Level

Medium5 of 10

Topics
Greedy, Sorting, String, Implementation
Solved
No attempts yet

Problem

Let SS be a string containing only lowercase English letters. An anagram of SS is any string that contains exactly the same letters as SS (with the same number of occurrences for each letter), but in a different order. For example, the word kick has anagrams such as kcik and ckki.

Now, let S[i]S[i] be the ii-th letter in SS. We say that an anagram of SS, AA, is shuffled if and only if for all ii, S[i]≠A[i]S[i] \neq A[i]. So, for instance, kcik is not a shuffled anagram of kick as the first and fourth letters of both of them are the same. However, ckki would be considered a shuffled anagram of kick, as would ikkc.

Given an arbitrary string SS, your task is to output any one shuffled anagram of SS, or else print IMPOSSIBLE if this cannot be done.

Input

The first line of the input gives the number of test cases, TT. TT test cases follow. Each test case consists of one line, a string of English letters.

Output

For each test case, output one line containing Case #x: y, where xx is the test case number (starting from 1) and yy is a shuffled anagram of the string for that test case, or IMPOSSIBLE if no shuffled anagram exists for that string.

Constraints

  • 1≤T≤1001 \le T \le 100.
  • All input letters are lowercase English letters.

Hint

In test case #1, tarts is a shuffled anagram of start as none of the letters in each position of both strings match the other. Another possible solution is trsta (though you only need to provide one solution). However, in test case #2, there is no way of anagramming jjj to form a shuffled anagram, so IMPOSSIBLE is printed instead.

Examples1

  1. Example 1

    Input
    2
    start
    jjj
    
    Expected output
    Case #1: tarts
    Case #2: IMPOSSIBLE