IOI '96 - Veszprém, Hungary
The structure of some biological objects is represented by the sequence of their constituents, where each part is denoted by an uppercase letter. Biologists are interested in decomposing a long sequence into shorter ones called primitives.
We say that a sequence can be composed from a given set of
primitives if there is a sequence of (possibly repeated)
primitives from the set whose concatenation equals . Not necessarily
all primitives need be present. For instance the sequence ABABACABAAB
can be composed from the set of primitives:
{A, AB, BA, CA, BBC}
The first characters of are the prefix of with length . Write a program which accepts as input a set of primitives and a sequence of constituents and then computes the length of the longest prefix that can be composed from primitives.
Input Specification
First, the input contains the list (length ) of primitives (length
) expressed as a series of space-separated strings of uppercase
characters on one or more lines. The list of primitives is terminated by
a line that contains nothing more than a period (.
). No primitive
appears twice in the list.
Then, the input contains a sequence (length ) expressed as one or more lines, none of which exceeds letters in length. Newline characters are not part of the string .
Output Specification
A single line containing an integer that is the length of the longest prefix that can be composed from the set .
Sample Input
A AB BA CA BBC
.
ABABACABAABC
Sample Output
11
Comments