#include <iostream>
using namespace std;
long long p=1e9+7;
long long w[1000004];
long long k[1000004];
long long re(long long a,long long b,long long c){
long long d=1;
a=a%c;
while(b){
if(b&1)
d=(a%c*(d%c))%c;
a=(a%c*(a%c))%c;
b>>=1;
}
return d%c;
}
int main(){
w[0]=1;
for(int i=1;i<=1000001;i++){
w[i]=w[i-1]*i%p;
}
k[0]=1;
for(int i=1;i<=1000001;i++){
long long it=re(i,p-2,p);
k[i]=k[i-1]*it%p;
}
long long f=0;
long long n;
cin>>n;
if(n<5){
cout<<0;
}
else if(n==5){
cout<<1;
}
else if(n==6){
cout<<7;
}
else if(n==7){
cout<<29;
}
else{
long long a1,a2,a3;
a1=(w[n]*k[5])%p*k[n-5]%p;
a2=(w[n]*k[6])%p*k[n-6]%p;
a3=(w[n]*k[7])%p*k[n-7]%p;
cout<<((a1+a2)%p+a3)%p;
}
return 0;
}