...Then Vadim started writing another problem statement, when suddenly...
A certain contest has N sponsors, and each of them wants to see the name of their company in the exactly si different problem statements. However, the participants of this contest do not want to see references to more than K different sponsors in the same problem statement.
The jury can certainly handle such requirements, but they have a different question. The number of problems in the contest is currently unknown, but it is possible to include the company name in any of the problem statements (for example, “FIIT”). The jury does not want to work too hard, so they want to develop the minimum possible number of problems that satisfy the sponsors’ wishes without disappointing the participants of the contest.
However, the jury is currently busy coming up with ideas for the problem set, so the task of calculating this number of problems falls to you. Additionally, provide an example of how the sponsors can be distributed among the problem statements in such a contest.
The first line contains two integers N and K — the sponsors’ wishes and the participants’ wishes (1 ≤ N, K ≤ 1000).
The second line contains N integers si separated by spaces — the wishes of each sponsor (1 ≤ si ≤ 1000).
It is guaranteed that the total number of sponsor wishes does not exceed 105.
In the first line, output the minimum number of problems in the contest, M.
In the next M lines, describe the sponsors for each problem separately. First, output ki — the number of sponsors in problem i, and then output ki numbers representing the sponsors for that problem, separated by spaces. The sponsors for one problem should be distinct.
1 1 1 1 1
2 2 3
2 4 1
Problem Author: Valentin Zuev
Problem Source: Ural School Programming Contest 2022