克隆
题号:NC213863
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

作为一名超级英雄,scimoon 每天晚上都要巡视整个城市

这个城市可以抽象成一个 n 个点 m 条边的无向连通图,scimoon 的任务可以看做经过所有的点

尽管 scimoon 是一位非常无敌的英雄,但是人类的能力必然是有极限的:在一个晚上,scimoon 只能经过 个点,并且经过的相邻的两个点之间必须有连边(这些点可以重复)

因此, scimoon 不做人 学会了分身术,他可以将自己分身成 k 个,并提早让每个分身来到各自的出发点,同样地,每个分身也只能经过 个点

现在 scimoon 想知道存不存在一种方案使得每个点至少被一个分身经过

输入描述:

第一行三个正整数 n,m,k,意义与题目描述中一致

接下来 m 行,每行两个正整数 u,v 表示原图中的一条无向边 (u,v)

输出描述:

如果存在解,第一行输出 'YES'(不含引号),接下来输出 k 行,每行先输出一个整数 p,表示这个分身经过的点的数量,接下来按分身经过点的顺序输出 p 个数,表示这个分身经过的点

如果有多解只需要输出一组解

如果不存在点,输出 'NO' 即可(不含引号)
示例1

输入

复制
3 2 1
2 1
3 1

输出

复制
YES
4 1 2 1 3
示例2

输入

复制
5 4 2
1 2
2 3
2 4
1 5

输出

复制
YES
5 1 2 3 2 4
1 5

备注: