#P13630. [NWRRC 2021] Clean Up!

[NWRRC 2021] Clean Up!

题目描述

Once Charlie decided to start a new life by deleting all files in his Downloads directory. It's easy to do that using bash\texttt{bash} shell! It has two useful features: the rm\texttt{rm} command, which removes all files given as arguments, and patterns, which are replaced with the list of files matching them before executing the command.

Charlie ran rm *\texttt{rm *}, but received an Argument list too long\texttt{Argument list too long} response. Unfortunately, after bash\texttt{bash} replaced *\texttt{*} with the names of all files in the Downloads directory, it failed to run the command because it had too many arguments.

After some experiments, Charlie realized he can execute rm abc*\texttt{rm abc*} to delete all files with names starting with abc\texttt{abc} if there are at most kk such files. If more than kk files match this pattern, none of them will be deleted. Of course, he can replace abc\texttt{abc} with any string.

Help Charlie to find the smallest number of rm\texttt{rm} commands needed to delete all files. Assume that he can only use the rm\texttt{rm} command as rm <prefix>*\texttt{rm <prefix>*}, where <prefix>\texttt{<prefix>} consists of lowercase English letters (and can be empty).

输入格式

The first line contains two integers nn and kk --- the number of files to delete, and the maximum number of files that can be deleted by one rm\texttt{rm} command (1n,k31051 \le n, k \le 3 \cdot 10^5).

Each of the next nn lines contains a single string, denoting a file name. All file names are distinct, non-empty, and consist of lowercase English letters. The total length of all file names doesn't exceed 31053 \cdot 10^5.

输出格式

Print a single integer --- the smallest number of rm\texttt{rm} commands needed to delete all files.

4 2
a
abc
abd
b
2
4 2
d
c
ab
a
2
5 3
please
remove
all
these
files
3

提示

In the first example test, Charlie can execute rm ab*\texttt{rm ab*} to delete files abc\texttt{abc} and abd\texttt{abd}, and then execute rm *\texttt{rm~*} to delete files a\texttt{a} and b\texttt{b}. Note that he can't just run rm *\texttt{rm *} immediately, because initially all four files match an empty prefix.