F**king string!

Time Limit : 1 Second

Memory Limit : 128 MB

Submission: 237

Solved: 55

Description

xiaoY is a cute boy, he is addicted in the English words. Today he invents a game called "Finding the best common K”. Here is the way how the game works:

First, xiaoY lists N words he wants to play with:

canceled

so-nice (the phrase, We ensure that the words in the phrase will be connected by a '-')

Then, xiaoY gives a misspell word. Your task is to minimize K such that every word’s first K letters have at least a D-consecutive common part with the misspell word. (D-consecutive common part means a consecutive common part whose length is D).

Just like the case:

Misspell word:  canice D=3

As you see,       Common ("canadi", canice) = "can" >=3;   //first 6 letter of canadian!

Common ("cancel", canice) = "can" >=3;

Common ("so-nic", canice) ="nic">=3;

So the minimum K that satisfies this case is 6!

If you can't find K that satisfies the rules, then just output "-1"!

Input

Mutiple cases.

N (0<N<=10)  D (0<D<=100 )

N words followed (0<each word's length<=100)

Misspell word (0<length<=100)

0 0 indicates the end.

Output

The minimum K or -1

sample input
```3 3
```6