...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 s_{i} 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.
Input
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 s_{i} separated by spaces — the wishes of each sponsor (1 ≤ s_{i} ≤ 1000).
It is guaranteed that the total number of sponsor wishes does not exceed 10^{5}.
Output
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 k_{i} — the number of sponsors in problem i, and then output k_{i} numbers representing the sponsors for that problem, separated by spaces. The sponsors for one problem should be distinct.
Sample
input  output 

5 2
1 1 1 1 1
 3
1 5
2 2 3
2 4 1

Problem Author: Valentin Zuev
Problem Source: Ural School Programming Contest 2022