#include <iostream>
#include <vector>
int OrderingsNumber(int n) {
std::vector<std::vector<int> > f(n+1, std::vector<int>(n+1));
f[1][0] = 1;
int factorial = 1;
for (int i = 2; i <= n; i++) {
f[i][0] = 1;
factorial *= i;
f[i][i-1] = factorial;
for (int k = 1; k < n - 1; k++) {
f[i][k] = (k + 1) * (f[i-1][k-1] + f[i-1][k]);
}
}
int answer = 0;
for (int i = 0; i < n; i++) {
answer += f[n][i];
}
return answer;
}
int main() {
std::cout << OrderingsNumber(3) << std::endl;
return 0;
}