#include<bits/stdc++.h>
using namespace std;
string add(string a, string b);
string tt(int x);
string mul(string a, string b);
int main() {
int n;
cin >> n;
string sum = "0";
string xiang = "1";
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
xiang = mul(xiang, tt(j));
}
sum = add(sum, xiang);
xiang = "1";
}
cout << sum;
return 0;
}
string tt(int x) {
string res = "";
while (x) {
res = char(x % 10 + '0') + res;
x /= 10;
}
return res;
}
string mul(string a, string b) {
int la = a.length();
int lb = b.length();
int ans[la + lb] = {};
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
string res = "";
for (int i = 0; i < la; i++) {
for (int j = 0; j < lb; j++) {
ans[i + j] += (a[i] - '0') * (b[j] - '0');
}
}
for (int i = 0; i < la + lb; i++) {
ans[i + 1] += ans[i] / 10;
res = char(ans[i] % 10 + '0') + res;
}
while (res[0] == '0' && res.length() != 1) res.erase(0, 1);
return res;
}
string add(string a, string b) {
string ss = "";
int cr = 0;
while (b.size() < a.size()) {
b = '0' + b;
}
while (b.size() > a.size()) {
a = '0' + a;
}
for (int i = a.size() - 1; i >= 0; i--) {
ss = char(((a[i] - '0' + b[i] - '0' + cr) % 10 + '0')) + ss;
cr = (a[i] - '0' + b[i] - '0' + cr) / 10;
}
if (cr) ss = '1' + ss;
return ss;
}