#XMOJ11814. 精灵对战

精灵对战

说明

时间限制:1 Sec 内存限制:256 MB 输入文件:numen.in 输出文件:numen.out

"卢塞维尔"精灵训练营里,小明养了 $n$ 只精灵,编号 $1$ 到 $n$ 各不相同。每次对战是一场全员参加的训练赛:所有精灵被分成红蓝两队,每队至少一只。

小明希望:经过若干次对战后,任意两只精灵都至少有一次被分在不同队伍里(这样才能互相切磋过)。由于精灵体力有限,他想用最少的对战次数达成目标。

请你帮他安排对战计划。

输入格式

一行,一个整数 $n$($2 \le n \le 1000$)。

输出格式

第一行输出 $m$,表示最少对战次数。

接下来 $m$ 行,第 $i$ 行描述第 $i$ 次对战:先输出一个整数 $f_i$($1 \le f_i < n$),表示这次对战中红队的人数;随后输出 $f_i$ 个 $1$ 到 $n$ 之间的整数,即红队精灵的编号(其余精灵自动归入蓝队)。同一行数字用空格隔开,编号顺序任意。若有多种最优方案,输出任意一种即可。

样例

样例 1

3

2
1 2
1 1

样例说明:

最少需要 22 次对战,两次的分队如下:

第 $1$ 次:红队 $2$,蓝队 $1,3$,所以精灵 $2$ 与 $1,3$ 都切磋过;

第 $2$ 次:红队 $1$,蓝队 $2,3$,所以精灵 $1$ 与 $2,3$ 都切磋过。

两次对战中,每只精灵所在队伍依次为:$1$ 号(蓝红)、$2$ 号(红蓝)、$3$ 号(蓝蓝)。$3$ 只精灵的记录互不相同,因此任意两只精灵至少有一次被分在不同队伍,目标达成。

样例 2

6

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

样例说明:

最少需要 33 次对战,三次的分队如下:

第 $1$ 次:红队 $1,2,3$,蓝队 $4,5,6$,所以前 $3$ 只精灵与后 $3$ 只精灵两两都切磋过;

第 $2$ 次:红队 $1,4,5$,蓝队 $2,3,6$;

第 $3$ 次:红队 $1,3,5$,蓝队 $2,4,6$。

三次对战中,每只精灵所在队伍依次为:$1$ 号(红红红)、$2$ 号(红蓝蓝)、$3$ 号(红红蓝)、$4$ 号(蓝红蓝)、$5$ 号(蓝红红)、$6$ 号(蓝蓝蓝)。$6$ 只精灵的记录互不相同,因此任意两只精灵至少有一次被分在不同队伍,目标达成。

数据范围

$2 \le n \le 1000$。