Letter games are popular at home and on television. In one version of the game, every letter has a value, and you collect letters to form one or more words giving the highest possible score. Unless you have `a way with words', you will try all the words you know, sometimes looking up the spelling, and then compute the scores. Obviously, this can be done more accurately by computer.
Given the values in Figure 1, a list of English words, and the letters collected: find the highest scoring words or pairs of words that can be formed.
The `dictionary' file WORDS.TXT consists of at most 40,000 lines. At the end of this file is a line with a single period (`.'). Each of the other lines contains a string of at least 3 and at most 7 lowercase letters. The file WORDS.TXT is sorted alphabetically and contains no duplicates.
When a combination of two words can be formed with the given letters, the words should be printed on the same line separated by a space. Do not duplicate pairs; for example, `rag prom' and `prom rag' are the same pair, therefore only one of them should be written. A pair in an output line may consist of two identical words.
_____________ _____________ ______________ | WORDS.TXT | | INPUT.TXT | | OUTPUT.TXT | |___________| |___________| |____________| | profile | | prmgroa | | 24 | | program | |___________| | program | | prom | | prom rag | | rag | |____________| | ram | | rom | | . | |___________|Figure 2: Example input and output