D 与集合
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

D 给了你 n 个整数 ,请将这  n 个整数划分为 k 个非空集合,使得每个集合的和非零,或判断无解。

输入描述:

第一行两个正整数 n,k 
接下来一行 n 个整数,第 i 个数为 a_i 

输出描述:

如果无解,输出一行一个字符串 NO;
否则,先输出一行一个字符串 YES,
之后 k 行,第 i 行先输出一个正整数 S,表示第 i 个集合的大小,之后再输出 S 个数,表示集合中的数,用空格隔开。

示例1

输入

复制
6 3
-1 -1 4 5 1 -4

输出

复制
YES
2 -4 5
3 -1 -1 1
1 4