import std.algorithm; import std.array; import std.conv; import std.math; import std.stdio; import std.string; import std.range; int readint() { return readln.chomp.to!int; } int[] readints() { return readln.split.map!(to!int).array; } ulong calc(int n) { if (n == 1) return 1; const mod = 1_000_000_007; ulong odd = 1; ulong even = 0; for (int i = 2; i < n; i++) { // n - 1 まで計算 if (i % 2 == 0) { even += (i * odd) % mod; } else { odd += (i * even) % mod; } } return (n % 2 == 0 ? n * odd : n * even) % mod; } void main() { int n = readint(); writeln(calc(n)); }