spoj#VIDEO. Video game combos
Video game combos
Bessie is playing a video game! In the game, the three letters 'A', 'B',
and 'C' are the only valid buttons. Bessie may press the buttons in any
order she likes. However, there are only N distinct combos possible (1 <= N
<= 20). Combo i is represented as a string S_i which has a length between 1
and 15 and contains only the letters 'A', 'B', and 'C'.
Whenever Bessie presses a combination of letters that matches with a combo,
she gets one point for the combo. Combos may overlap with each other or
even finish at the same time! For example if N = 3 and the three possible
combos are "ABA", "CB", and "ABACB", and Bessie presses "ABACB", she will
end with 3 points. Bessie may score points for a single combo more than once.
Bessie of course wants to earn points as quickly as possible. If she
presses exactly K buttons (1 <= K <= 1,000), what is the maximum number of
points she can earn?
Input description
* Line 1: Two space-separated integers: N and K.
* Lines 2..N+1: Line i+1 contains only the string S_i, representing combo i.
Output description
* Line 1: A single integer, the maximum number of points Bessie can obtain.
Example
Input: 3 7 ABA CB ABACB Output: 4
Example details
The optimal sequence of buttons in this case is ABACBCB, which gives 4 points:
1 for ABA, 1 from ABACB, and 2 from CB.