#3214. 志愿值班组

志愿值班组

志愿值班组

题目描述

学校要从编号为 11 到 nn 的志愿者中选出 kk 人组成一个值班组。

有些志愿者不能被安排在同一组:若一对不兼容志愿者同时被选入,该小组就不合法。请按字典序输出所有合法的值班组。

一个小组内的编号必须从小到大输出。把两个小组分别看成它们的编号序列;从左到右比较时,第一个不同位置编号较小的小组排在前面。例如 1 3 6 排在 1 4 5 前面。

输入格式

第一行三个整数 n,k,mn,k,m:

  • nn 表示志愿者总数;
  • kk 表示每个值班组的人数;
  • mm 表示不兼容关系的数量。

接下来 mm 行,每行两个不同的整数 a,ba,b,表示志愿者 aa 与 bb 不能被选进同一个小组。

保证同一对不兼容关系不会重复给出。

输出格式

第一行输出一个整数,表示合法值班组的总数。

之后按字典序输出每个合法值班组,每行 kk 个从小到大排列的编号,编号之间用一个空格隔开。

若没有合法值班组,只输出第一行的 0。

输入示例 1

5 3 2
1 2
3 5

输出示例 1

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

数据范围

  • 1≤k≤n≤101 \le k \le n \le 10;
  • 0≤m≤n(n−1)20 \le m \le \frac{n(n-1)}{2};
  • 所有测试点的输出行数均不超过 300300。