写信
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 125 M,其他语言250 M
64bit IO Format: %lld

题目描述

某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。

输入描述:

一行一个n; n\leq 1e9

输出描述:

输出方案数对于1e9+7取模
示例1

输入

复制
2

输出

复制
1
示例2

输入

复制
114514

输出

复制
977005016