RT
#include<bits/stdc++.h>
using namespace std;
const int SIZE = 10005;
char ch[SIZE];
class bigint{
private:
int len;
short s[SIZE];
public:
bigint(long long x = 0)
{
len = 1;
if(x == 0)
return;
len = 0;
while(x != 0)
{
s[++len] = x%10;
x /= 10;
}
}
void input()
{
scanf("%s", ch+1);
len = strlen(ch+1);
for(int i = 1; i <= len; i++)
s[i] = ch[len-i+1]-48;
}
void print(bool endline = false)
{
for(int i = len; i >= 1; i--)
putchar(s[i]+48);
if(endline)
putchar('\n');
}
friend bigint operator + (bigint a, bigint b)
{
bigint c;
c.len = a.len > b.len ? a.len : b.len;
for(int i = 1; i <= c.len+1; i++)
{
c.s[i] += a.s[i]+b.s[i];
if(c.s[i] > 9)
c.s[i+1]++, c.s[i] %= 10;
}
if(c.s[c.len+1] != 0)
c.len++;
return c;
}
friend bigint operator * (bigint a, bigint b)
{
bigint c;
for(int i = 1; i <= b.len; i++)
for(int j = 1; j <= a.len; j++)
c.s[i+j-1] += a.s[j]*b.s[i];
c.len = a.len+b.len;
for(int i = 1; i <= c.len; i++)
{
c.s[i+1] += c.s[i]/10;
c.s[i] %= 10;
}
while(c.s[c.len] == 0 and c.len > 1)
c.len--;
return c;
}
};
bigint s, k(1);
int main()
{
int n; cin >> n;
for(int i = 1; i <= n; ++i)
{
k = k*i;
s = s+k;
}
s.print();
}