#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
struct bigint {
long long a[10000] = {0}, length = 0;
bigint(int n) {
a[1]=n;
}
void read() {
string s;
int num = 1;
cin >> s;
length = s.length();
for(int i = length - 1; i >= 0; i--, num++) a[num] = s[i] - '0';
}
void print() {
for(int i = length; i >= 1; i--) printf("%d", a[i]);
printf("\n");
}
void flatten() {
for(int i = 1; i <= length; i++) if(a[i] >= 10) a[i + 1] += a[i] / 10, a[i] %= 10;
if(a[length + 1]) length++;
}
};
bigint operator+(bigint a, bigint b) {
bigint c(0);
c.length = max(a.length, b.length);
for(int i = 1; i <= c.length; i++) c.a[i] = a.a[i] + b.a[i];
c.flatten();
return c;
}
bigint operator*(bigint a, int b) {
for(int i = 1; i <= a.length; i++) a.a[i] *= b;
a.flatten();
return a;
}
signed main() {
int n;
bigint ans(0), sum(1);
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
sum = sum * i, ans = ans + sum;
}
ans.print();
return 0;
}