七夕来配对
题号:NC276939
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

对于一个排列 a ,我们定义它的配对值为 好下标 的数量。
如果下标 i 满足 i\%a[i]==0 或者 a[i]\%i==0 ,那么它是一个好下标。
请你构造出一个 n 级排列,满足配对值最大,然后输出配对值和对应的排列。
n 级排列 是一个长度为 n 的序列,使得数字 1 \sim n 在序列中都出现一次。
排列可能有很多个,输出任意一个即可。

输入描述:

第一行有一个整数 n\ (\ 1 \leq n \leq 10^{5}\ )

输出描述:

第一行输出一个整数,代表最大的配对值 。
第二行输出 n 个整数,代表排列本身。
示例1

输入

复制
6

输出

复制
6
5 4 6 2 1 3

说明

对于下标 1 ,有 5\%1==0
对于下标 2 ,有 4\%2==0
对于下标 3 ,有 6\%3==0
对于下标 4 ,有 4\%2==0
对于下标 5 ,有 5\%1==0
对于下标 6 ,有 6\%3==0