Abstract Extract

Time limit1sMemory limit128 MB

Problem

When writing an article, there is usually an abstract that summarizes the whole article. We are experimenting with an algorithm that generates such an abstract automatically. The algorithm reads an article and produces an abstract that summarizes it. The abstract is formed by joining the topic sentences taken from consecutive paragraphs.

For this problem:

  • An article consists of one or more paragraphs.
  • A paragraph is a maximal sequence of non-empty lines.
  • A sentence is a maximal sequence of characters within a paragraph that begins with a non-whitespace character, ends with a . (period), ?, or !, and contains no other occurrence of ., ?, or !. A single sentence may span several lines.
  • A word is a maximal sequence of alphabetic characters within a sentence.

Here maximal means we take only the longest sequence that matches the definition, not any of its subsequences. For example, the sentence "How now, brown cow?" contains four words. "now" is a word, but "no" and "ow" are not, because they are subsequences of a longer sequence of alphabetic characters.

The topic sentence of a paragraph is the single sentence that best describes the paragraph. We choose it as follows: for each sentence S, count the distinct words in S that also occur in some later sentence of the same paragraph; the topic sentence is the earliest sentence that maximizes this count.

Paragraphs with fewer than three sentences are ignored and do not contribute to the abstract.

When comparing words, differences in upper and lower case are ignored. For example, the sentence "See what I see." contains three distinct words, not four.

Input

The input consists of one or more articles. Each article is terminated by a line containing only *** or ******. The latter (******) marks the end of the entire input.

  • Each article contains one or more paragraphs. Each paragraph consists of one or more non-empty lines and is terminated by an empty line or by the *** or ****** markers described above.
  • No article is longer than 500 lines. No line contains more than 150 characters. No word contains more than 50 characters.
  • The only whitespace characters in the input are blanks (ASCII 32) and line terminators.

Output

For each article, print its abstract followed by a line containing ====== (six equal signs).

Each abstract is formed from the topic sentences, selected as described above, in the order they occur in the article. Print each sentence exactly as it appears in the input, followed by a line break.