Under construction

Still being built. Things may change

Making Words

Time limit1sMemory limit128 MB

Summary
For each 3x3 letter board, find which center letters yield the fewest and the most dictionary words of length 4 or more, along with those counts.
Level

Medium6 of 10

Topics
String, Bit manipulation, Hash map, Brute force
Solved
No attempts yet

Problem

A 3 by 3 puzzle board contains one uppercase English letter in each cell. Using the letters on the board, you can form words from a dictionary. A word must have at least 4 letters, and each cell may be used at most once, so a repeated letter can be used only as many times as it appears on the board. The letter placed in the center cell must also be included in the word.

The 9 letters to place on the board are already fixed, but the center letter has not been chosen yet. Depending on which letter is placed in the center, the number of dictionary words that can be made changes.

Given a dictionary and several puzzle boards, determine for each board which center letters minimize the number of possible words and which center letters maximize it, together with those word counts.

Input

The input first gives the dictionary, one word per line. The dictionary contains at most 200,000 words. Each word consists only of 4 to 9 uppercase English letters. The words are sorted in lexicographic order. A line containing a single - marks the end of the dictionary.

After that, several puzzle boards are given. Each board is a line containing exactly 9 uppercase English letters. A line containing a single # marks the end of the input.

Output

For each puzzle board, print one line containing the following four values separated by spaces.

  1. The distinct center letters, in alphabetical order, that make the number of possible words as small as possible
  2. That minimum number of words
  3. The distinct center letters, in alphabetical order, that make the number of possible words as large as possible
  4. That maximum number of words

If multiple letters achieve the same minimum or maximum, print all of them once in alphabetical order. Even if a letter appears multiple times on the board, it appears at most once in the output.

Examples1

  1. Example 1

    Input
    APPLE
    BANANA
    BANE
    BRILLIANT
    LINT
    PALE
    PROBLEM
    TILL
    TRILL
    -
    LARBITNLI
    LEPAPBNNA
    LEPAPBNAM
    #
    
    Expected output
    AB 1 ILT 4
    BN 1 AE 3
    M 0 AE 3