#include #include #include #include #include #include #include #include #include #define L64 long long #define ASDF (1000000007LL) #define MODADD(A, B) (A = (A + B) % ASDF) int main(void) { L64 n; std::cin >> n; std::vector an; std::vector sums; an.resize(n + 1); sums.resize(n + 1); an[1] = 1; sums[1] = 1; sums[0] = 0; for(L64 i = 2; i <= n; i++){ an[i] = (i * sums[i - 1]) % ASDF; sums[i] = (sums[i - 2] + an[i]) % ASDF; } std::cout << an[n] << std::endl; return 0; }