#include<cstdio>
#include<cstring>
int n;
int dp[1<<4][1<<4][1<<6][1<<10];
int f(int x, int y, int z, int state) {
if (z < 0) return 0;
if (y < 0) return f(x-1, n-1, z, state >> 1);
if (x < 0) return (z == 0);
int &ret = dp[x][y][z][state];
if (ret != -1) return ret;
ret = f(x, y-1, z-1, state | (1 << (y+1)));
if ( ((state >> (y-1)) & 1) | ((state >> (y+1)) & 1) ) return ret;
return ret += f(x, y-1, z, state);
}
int main() {
memset(dp, -1, sizeof dp);
scanf("%d", &n);
printf("%d\n", f(n-1, n-1, (n*n) >> 1, 0));
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxjc3RyaW5nPgoKaW50IG47CmludCBkcFsxPDw0XVsxPDw0XVsxPDw2XVsxPDwxMF07CgppbnQgZihpbnQgeCwgaW50IHksIGludCB6LCBpbnQgc3RhdGUpIHsKICAgIGlmICh6IDwgMCkgcmV0dXJuIDA7CiAgICBpZiAoeSA8IDApIHJldHVybiBmKHgtMSwgbi0xLCB6LCBzdGF0ZSA+PiAxKTsKICAgIGlmICh4IDwgMCkgcmV0dXJuICh6ID09IDApOwoKICAgIGludCAmcmV0ID0gZHBbeF1beV1bel1bc3RhdGVdOwogICAgaWYgKHJldCAhPSAtMSkgcmV0dXJuIHJldDsKCiAgICByZXQgPSBmKHgsIHktMSwgei0xLCBzdGF0ZSB8ICgxIDw8ICh5KzEpKSk7CiAgICBpZiAoICgoc3RhdGUgPj4gKHktMSkpICYgMSkgfCAoKHN0YXRlID4+ICh5KzEpKSAmIDEpICkgcmV0dXJuIHJldDsKICAgIHJldHVybiByZXQgKz0gZih4LCB5LTEsIHosIHN0YXRlKTsKfQoKaW50IG1haW4oKSB7CiAgICBtZW1zZXQoZHAsIC0xLCBzaXplb2YgZHApOwogICAgc2NhbmYoIiVkIiwgJm4pOwogICAgcHJpbnRmKCIlZFxuIiwgZihuLTEsIG4tMSwgKG4qbikgPj4gMSwgMCkpOwogICAgcmV0dXJuIDA7Cn0K