/**
* author: orzvanh14 ( )
* created: 19.06.2026 19:15:02
**/
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define nn "\n"
const int mod = 1e9 + 7;
const int N = 1e5 + 5;
int D[N];
void solve(){
int n;
cin >> n;
if (n == 1) {
cout << 0 << nn;
return;
}
if (n == 2) {
cout << 1 << nn;
return;
}
D[1] = 0;
D[2] = 1;
for(int i = 3; i <= n; i++){
// Công thức: D[n] = (n - 1) * (D[n-1] + D[n-2]) % mod
D[i] = (i - 1) * (D[i - 1] + D[i - 2]) % mod;
}
cout << D[n] << nn;
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
return (0 ^ 0);
}
LyoqCiAqIGF1dGhvcjogIG9yenZhbmgxNCAoICApCiAqIGNyZWF0ZWQ6IDE5LjA2LjIwMjYgMTk6MTU6MDIKKiovCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIG5uICJcbiIKCmNvbnN0IGludCBtb2QgPSAxZTkgKyA3Owpjb25zdCBpbnQgTiA9IDFlNSArIDU7CmludCBEW05dOwoKdm9pZCBzb2x2ZSgpewogICAgaW50IG47CiAgICBjaW4gPj4gbjsKCiAgICBpZiAobiA9PSAxKSB7CiAgICAgICAgY291dCA8PCAwIDw8IG5uOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChuID09IDIpIHsKICAgICAgICBjb3V0IDw8IDEgPDwgbm47CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIERbMV0gPSAwOwogICAgRFsyXSA9IDE7CiAgICBmb3IoaW50IGkgPSAzOyBpIDw9IG47IGkrKyl7CiAgICAgICAgLy8gQ8O0bmcgdGjhu6ljOiBEW25dID0gKG4gLSAxKSAqIChEW24tMV0gKyBEW24tMl0pICUgbW9kCiAgICAgICAgRFtpXSA9IChpIC0gMSkgKiAoRFtpIC0gMV0gKyBEW2kgLSAyXSkgJSBtb2Q7CiAgICB9CgogICAgY291dCA8PCBEW25dIDw8IG5uOwp9CgpzaWduZWQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgY291dC50aWUoMCk7CiAgICBzb2x2ZSgpOwogICAgcmV0dXJuICgwIF4gMCk7Cn0=