CF1886E I Wanna be the Team Leader
Description
Monocarp is a team leader in a massive IT company.
There are $ m $ projects his team of programmers has to complete, numbered from $ 1 $ to $ m $ . The $ i $ -th project has a difficulty level $ b_i $ .
There are $ n $ programmers in the team, numbered from $ 1 $ to $ n $ . The $ j $ -th programmer has a stress tolerance level $ a_j $ .
Monocarp wants to assign the programmers to the projects in such a way that:
- each programmer is assigned to no more than one project;
- each project has at least one programmer assigned to it;
- let $ k $ programmers be assigned to the $ i $ -th project; then all the assigned programmers have to have a stress tolerance level greater than or equal to $ \frac{b_i}{k} $ .
Help Monocarp to find a valid assignment. If there are multiple answers, print any of them.
Input Format
The first line contains two integers $ n $ and $ m $ ( $ 1 \le n \le 2 \cdot 10^5 $ ; $ 1 \le m \le 20 $ ) — the number of programmers and the number of projects.
The second line contains $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ 1 \le a_i \le 10^9 $ ) — the stress tolerance level of each programmer.
The third line contains $ m $ integers $ b_1, b_2, \dots, b_m $ ( $ 1 \le b_i \le 10^9 $ ) — the difficulty level of each project.
Output Format
If there is no valid assignment, print "NO".
Otherwise, in the first line, print "YES". In the $ i $ -th of the next $ m $ lines, print the list of the programmers assigned to the $ i $ -th project: first, the number of programmers, then their indices in an arbitrary order.
If there are multiple answers, print any of them.