#include <fstream>
using namespace std;
const int DIM = 5000;
int bigNum[DIM];
void multiply(int val) {
int carry = 0;
for (int i = 1; i <= bigNum[0]; i++) {
carry += bigNum[i] * val;
bigNum[i] = carry % 10;
carry /= 10;
}
while (carry != 0) {
bigNum[++bigNum[0]] = carry % 10;
carry /= 10;
}
}
int main() {
ifstream fin("patrate2.in");
ofstream fout("patrate2.out");
int n;
fin >> n;
bigNum[0] = bigNum[1] = 1;
for (int i = 2; i <= n; i++)
multiply(i);
for (int i = 1; i <= n * n; i++)
multiply(2);
for (int i = bigNum[0]; i >= 1; i--)
fout << bigNum[i];
fin.close();
fout.close();
return 0;
}