小 X 有一台奇怪的计算机。
这台计算机首先会读入一个正整数 $n$,然后生成一个包含 $n$ 个数的序列 $a$。
一开始 $a_i(1 \le i \le n)$ 的值均为 $1$。
接下来,小 X 会进行 $n-1$ 次操作,每次操作会输入一个指令,这个指令有 $2$ 种情况:
x +表示把此时序列中第 $x$ 个数 $a_x$ 和第 $x+1$ 个数 $a_{x+1}$ 合并为一个数,值为 $a_x + a_{x+1}$。
x +
x *表示把此时序列中第 $x$ 个数 $a_x$ 和第 $x+1$ 个数 $a_{x+1}$ 合并为一个数,值为 $a_x \times a_{x+1}$。
x *
假设某个时刻序列中元素的个数为 $k$,小 X 必须保证 $1 \le x < k$。
那么,经过 $n-1$ 次操作后,序列只剩下了一个数,此时计算机会输出这个数。
小 X 想知道,当他输入 $n$ 时,这台计算器输出的数最大会是多少。
由于这个数可能会很大,你只需要求出这个数模 $10^9+7$ 的值。
一行一个正整数 $n$。
一行一个整数,表示答案对 $10^9+7$ 取模后的值。
6
9
37
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}$。