CF510E Fox And Dinner

题目描述

小狐狸 Ciel 参加了一个派对,加上他自己这个派对里总共有 $n$ 只狐狸,每只狐狸有一个年龄 $a_i$。 它们想要在几张圆桌旁吃晚饭,你需要帮忙分配座位,使得满足以下要求: 1. 每只狐狸都在其中 2. 每张桌子边至少有 $3$ 只狐狸 3. 任意两只相邻的狐狸的年龄之和为质数(圆桌上每只狐狸都有 $2$ 只相邻的狐狸)

输入格式

第一行一个正整数 $n(3 \le n \le 200)$,表示狐狸个数。 第二行 $n$ 个正整数 $a_i(2 \le a_i \le 10^4)$,表示每只狐狸的年龄。

输出格式

如果不可能有满足要求的分配方式,输出 `Impossible`。 否则,第一行输出一个正整数 $m$ 表示桌数。 然后输出 $m$ 行,每行先一个整数 $k$ 表示这桌的狐狸数,然后 $k$ 个正整数表示这桌的狐狸编号(按照顺序输出,但从哪个编号开始没有关系)。 如果有多组解,输出任意一组。

说明/提示

【样例解释】 样例一:只需要一桌,顺序为 $3-8-9-4$,相邻的和分别是 $11,17,13,7$,全都是质数。 样例二:不可能,$2+2=4$ 不是质数。