[BalticOI 2017] Friends

题目背景

高中就是要交最棒的朋友! 乌姆里奇校长要调查霍格沃茨学校的交友情况了!

题目描述

学校里有 $n$ 个同学,他们的交友情况满足以下的条件: - 如果 $a$ 与 $b$ 是朋友那么 $b$ 与 $a$ 也是朋友; - 同学们可以分成组,每个同学都恰好只在一个组里面,且: - 每个组的人数至少 $1$ 个最多 $p$ 个; - 每组都有这样最多 $q$ 对朋友满足一个人在这个组,另一个人在别的组。 在同一个组里的两个同学不一定必须是朋友。 现在她来问您,想让您说出这些学生撒没撒谎。 如果没有撒谎的话,她想让您给出一个合理的分组模式。

输入输出格式

输入格式


第一行三个整数 $n,p,q$ 代表学生数,组别内学生的限制,和组别内不同组别朋友的限制。 学生的编号为从 $0$ 到 $n - 1$。 接下来 $n$ 行,从第 $0$ 个学生开始,首先一个整数 $m_i$ 代表这个学生与多少个学生为朋友,接下来 $m_i$ 个整数代表有哪些朋友。

输出格式


如果这些学生撒谎了,输出 `detention` 并结束程序。 如果这些学生没撒谎,首先输出 `home`。 然后一个整数 $G$ 代表这些学生可以分成 $G$ 组。 接下来 $G$ 行每行首先一个整数 $G'$ 代表这一组有几个学生,然后 $G'$ 个整数 $g_i$ 代表这一组学生的编号。 **任意输出一种方式即可。**

输入输出样例

输入样例 #1

4 2 1
1 1
2 0 2
2 1 3
1 2

输出样例 #1

home
2
2 0 1
2 2 3

输入样例 #2

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

输出样例 #2

detention

输入样例 #3

3 3 3
2 1 2
2 0 2
1 0

输出样例 #3

detention

说明

**数据规模与约定** **本题采用捆绑测试。** - Subtask 1(20 pts):$n \le 16$。 - Subtask 2(37 pts):$n \le 250$,$q \le 2$。 - Subtask 3(12 pts):$q \le 2$。 - Subtask 4(31 pts):无特殊限制。 对于 $100\%$ 的数据,$1 \le n \le 2500$,$p+q \le 15$,$\sum m_i \le 30000$,同学们不以自己为朋友。 **本题使用 Special Judge。** **说明** **翻译自 [BOI 2017 D2](https://boi.cses.fi/files/boi2017_day2.pdf) T2 Friends。** 翻译者:@[一只书虫仔](https://www.luogu.com.cn/user/114914)。 spj 提示信息说明: - `Accepted`:答案正确。 - `Wrong Answer[0]`:判断错误。 - `Wrong Answer[1]`:某些组的大小不符合要求。 - `Wrong Answer[2]`:组里含有编号不在 $0$ 到 $n-1$ 内的人。 - `Wrong Answer[3]`:某些人属于多个组。 - `Wrong Answer[4]`:某些人不属于任何组。 - `Wrong Answer[5]`:分组不满足要求。 spj 作者:@[FZzzz](https://www.luogu.com.cn/user/174045)。