Vitya is busy at work writing a new file manager called "RAF". Today, there is supposed to be a demonstration of the alpha version, but currently, "RAF" cannot open directories that contain more than $$$K$$$ elements (files or subdirectories).
On the computer where the demonstration will take place, there are currently $$$N$$$ files, distributed across various directories. If "RAF" cannot open any directory during the demonstration, the clients will be dissatisfied with Vitya's work. Therefore, Vitya wants to keep the maximum number of files from those available on the computer while ensuring that the constraint on the number of elements in each directory is met.
To achieve his goal, Vitya may delete some files. If, after a deletion, a directory is left with no elements, that directory is automatically deleted.
Help Vitya and tell him which files he should keep.
The first line contains two integers $$$N$$$ and $$$K$$$ — the number of files on the computer and the maximum allowed number of elements in a directory ($$$1 \leq K \leq 100$$$ , $$$1 \leq N$$$).
Each of the following $$$N$$$ lines contains the full path to a file.
File and directory names consist of lowercase and uppercase Latin letters and the underscore character ("_", ASCII 95). There are no two elements with the same name in a directory. There are no files or directories with empty names. The path separator is a slash ("/", ASCII 47).
The total length of the file paths does not exceed $$$10^6$$$.
On the first line, output the number of files $$$M$$$ that are kept. In each of the next $$$M$$$ lines, print the full paths of the kept files. If there are multiple solutions, any of them can be printed.
5 2 java/util/List java/time/Instant java/util/stream/Collectors java/util/stream/IntStream java/util/Queue
4 java/util/stream/Collectors java/util/stream/IntStream java/util/Queue java/time/Instant
| Name |
|---|


