武义寺
题号:NC229190
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

从前有个寺庙,名为武义寺。庙里有个老和尚和小和尚。老和尚叫扶弱给,小和尚叫扶弱呱。老和尚说“从前有个寺庙,名为武义寺。庙里有个老和尚和小和尚。老和尚叫扶弱给,小和尚叫扶弱呱……”
有一天,扶弱给在潜心研究排列。他在脑中随机一个排列的时候,脑海里冒出了这样一个问题:
对于一个排列 ,记 等于最小的 满足 ,如不存在则
可是 的期望值是多少呢?显然,扶弱给没学过编程,需要你来帮帮他。

输入描述:

输入一个数 

输出描述:

输出  的期望值,答案对  取模。
示例1

输入

复制
2

输出

复制
499122179

说明

对于排列 {p=[1,2]}\text{val}(p)=3;对于排列 {p=[2,1]}\text{val}(p)=2。因此期望值为 \frac{5}{2}

备注:

对于  的数据,
对于 的数据,
对于 的数据,
对于 的数据,