叁佰爱抠的序列
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

叁佰爱抠的智商有三百,他特别喜欢构造各种各样的序列。
这天他突然想出了这样一个序列:
一个长度为 的序列A,元素的值域是
对于任意 ,序列中存在一个位置 ,满足 或者
叁佰爱抠很开心地走了。作为他忠实粉丝的你只听清楚了 的大小,那么你好奇了起来, 最大值可以取到多少,并且打算自己动手构造一个这样的序列。

输入描述:

读入一个整数 ,代表序列的长度。

输出描述:

,请直接输出一个整数  代表最大取值。
,请按以下格式输出:
第一行输出一个整数 ,代表最大取值。
第二行输出 个整数,代表满足条件的序列。
示例1

输入

复制
8

输出

复制
4
1 2 3 1 4 3 4 2
示例2

输入

复制
6

输出

复制
3
1 2 3 1 1 1