애너그램 그룹

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

준민이는 영어 단어들을 애너그램 그룹으로 나누려고 한다.

단어 $w$가 단어 $v$의 애너그램이라는 것은, $w$의 알파벳을 재배열하여 $v$를 만들 수 있다는 뜻이다. 서로 애너그램인 단어들을 하나로 묶은 것을 애너그램 그룹이라고 한다. 그룹의 크기는 그 그룹에 속한 서로 다른 단어의 개수이다. 완전히 똑같은 단어가 여러 번 주어지면 한 번만 센다.

단어들이 주어졌을 때, 크기가 가장 큰 애너그램 그룹 다섯 개를 구하는 프로그램을 작성하시오.

입력

입력은 최대 30,000줄로 이루어지며, 각 줄에는 알파벳 소문자로만 이루어진 단어가 하나씩 주어진다. 입력은 파일의 끝(EOF)에서 끝난다.

출력

크기가 가장 큰 애너그램 그룹을 최대 다섯 개까지 출력한다. 그룹의 개수가 다섯보다 적으면 있는 그룹을 모두 출력한다.

그룹은 크기가 큰 순서대로 출력하고, 크기가 같으면 각 그룹에서 사전순으로 가장 앞서는 단어를 기준으로 사전순으로 출력한다.

각 그룹은 한 줄에 Group of size N: w1 w2 ... wk . 형식으로 출력한다. 여기서 $N$은 그룹의 크기이고, 그 뒤에 그룹에 속한 단어들을 사전순으로 나열한다. 각 단어 뒤에는 공백을 하나씩 두고, 줄의 끝에는 마침표를 하나 출력한다. 완전히 같은 단어는 한 번만 출력한다.