애너그램(anagram) 프로그램은 입력받은 영단어의 철자들을 재배열하여 만들 수 있는 모든 단어를 출력한다. 예를 들어 abc 를 입력받으면 abc, acb, bac, bca, cab, cba 를 출력한다.
한 단어 안에 같은 철자가 여러 번 나올 수 있으며, 이때 같은 문자열이 여러 번 만들어질 수 있다. 같은 문자열은 한 번만 출력한다. 또한 각 단어의 애너그램은 사전 순(알파벳 순)으로 정렬하여 출력한다.
첫째 줄에 단어의 개수 $N$이 주어진다. 다음 $N$개의 줄에는 각 줄마다 하나의 영단어가 주어진다. 모든 단어는 소문자 알파벳으로만 이루어져 있고, 길이는 20 이하이다. 서로 다른 애너그램의 개수가 100,000개 이하인 단어만 입력으로 주어진다.
각 단어마다 만들 수 있는 모든 애너그램을 한 줄에 하나씩 출력한다. 한 단어의 애너그램들은 사전 순으로 정렬하고, 중복은 제거하여 한 번씩만 출력한다.