#birthday0410c. [birthday0410_c]ロ シ ア

[birthday0410_c]ロ シ ア

问题文

在俄罗斯,睡眠现在非常流行。无论老人、年轻人还是男人女人,每个人都需要睡眠。在俄罗斯没有人不睡觉的。

只有骑上这个大浪潮,让我们一起睡觉!不管是你,还是我,或者是那些正在阅读问题文的人!

哦,看来这里有 NN 个想要睡觉的人。那我们赶快入睡吧!当这 NN 个人一起在一张床上睡觉时,我们就成为了整个俄罗斯的英雄!

快来一起睡觉吧,大家都去睡吧。在苏联俄罗斯,睡眠会掌控你!

不过,让陌生人睡在同一张床上似乎有些困难吧?哎呀,如果是亲戚朋友的话,问题就简单了!只需要亲戚朋友们挨着睡觉就可以了!

而且很方便的是,亲戚朋友之间的关系非常明确!令人惊讶的是,现在我们可以随意给每个人从 00N1N-1 编号,第 ii 个人只和 i1i-1i+1i+1 号人认识, 这真是俄罗斯的奇迹啊!当然,我们假设 1-1 号人和 N1N-1 号人是亲戚关系, NN 号人和 00 号人也是亲戚关系。

话说有些唠叨了。现在就让我们翘首以待吧,快去睡觉吧!躺在床上,闭上眼睛,深呼吸!一不留神你就会陷入沉睡之中!当你醒来时,你就成为了俄罗斯的英雄!尽情期待吧!!!

嗯?你仍然不知道如何睡觉害怕吗?你真是笨蛋...你看,这个程序已经帮你解决了问题。


任务

NN 个人想要睡觉。我们希望将这 NN 个人安排在一个长方形网格的床上睡觉。为此,需要满足两个条件:

第一个条件是对于每个人的姿势。每个人由网格上的准确 KK 个单元格表示。如果没有将 KK 个单元格连接成一列,那么他们将无法入睡。将单元格集合连接成一列是指,为每个单元格分配从 1 到 KK 的编号,以使得每个单元格仅与其编号相差 1 的单元格相邻。而且,两个单元格相邻表示它们共享一条边。

以下是当 K=5K = 5 时正确的睡姿示例(用 X 表示有人的单元格,用 . 表示没有人的单元格):


XXX    XX.
..X    .XX
..X    ..X

以下是当 K=5K = 5 时不正确的睡姿示例:


XXX    XXX    XX.
.XX    X..    .X.
...    .X.    .X.

第一个示例无法将单元格连接成一列。第二个示例有 5 个单元格不连续。第三个示例只有 4 个单元格。

第二个条件是人与人之间的邻居关系。给定 NN 个人,编号为 00N1N-1,第 ii 个人必须与 i1i-1 号和 i+1i+1 号人相邻。这里假设 1-1 号人是 N1N-1 号人, NN 号人是 00 号人。而且,两个人相邻表示它们所在的单元格相邻。

以下是当 K=5K = 5 时两个人相邻的睡姿示例(用 X 表示第一个人的单元格,用 Y 表示第二个人的单元格,用 . 表示没有人的单元格):


XXX    XXXXX
YYX    Y....
.YX    YY...
.YY    .YY..

以下是当 K=5K = 5 时两个人不相邻的睡姿示例:


XXX    XXXXX
..X    .....
Y.X    YYY..
YY.    ..Y..
.YY    ..Y..

床由长方形网格表示,它的宽度和高度可以自由选择,但是网格的单元格总数不能超过 100,000100,000。在此前提下,求出满足上述两个条件的 NN 个人的一种睡姿。当然,同一个单元格不能同时有两个