C1792 [模拟赛 #测试-D1]计算机 (computer)

内存限制:512 MB 时间限制:1000 ms

题目描述

小 X 有一台奇怪的计算机。

这台计算机首先会读入一个正整数 $n$,然后生成一个包含 $n$ 个数的序列 $a$。

一开始 $a_i(1 \le i \le n)$ 的值均为 $1$。

接下来,小 X 会进行 $n-1$ 次操作,每次操作会输入一个指令,这个指令有 $2$ 种情况:

  1. x +表示把此时序列中第 $x$ 个数 $a_x$ 和第 $x+1$ 个数 $a_{x+1}$ 合并为一个数,值为 $a_x + a_{x+1}$。

  2. x *表示把此时序列中第 $x$ 个数 $a_x$ 和第 $x+1$ 个数 $a_{x+1}$ 合并为一个数,值为 $a_x \times a_{x+1}$。

假设某个时刻序列中元素的个数为 $k$,小 X 必须保证 $1 \le x < k$。

那么,经过 $n-1$ 次操作后,序列只剩下了一个数,此时计算机会输出这个数。

小 X 想知道,当他输入 $n$ 时,这台计算器输出的数最大会是多少。

由于这个数可能会很大,你只需要求出这个数模 $10^9+7$ 的值。

输入格式

一行一个正整数 $n$。

输出

一行一个整数,表示答案对 $10^9+7$ 取模后的值。

样例

样例输入 1

6

样例输出 1

9

样例输入 2

37

样例输出 2

708588

提示

【数据范围与提示】

对于 $10\%$ 的数据,$1 \le n \le 2$。

对于 $25\%$ 的数据,$1 \le n \le 10$。

对于 $40\%$ 的数据,$1 \le n \le 100$。

对于 $55\%$ 的数据,$1 \le n \le 1000$。

对于 $70\%$ 的数据,$1 \le n \le 10^6$。

对于 $85\%$ 的数据,$1 \le n \le 10^9$。

对于 $100\%$ 的数据,$1 \le n \le 10^{18}$。