#include using namespace std; long long solve(long long N) { if( N<=16 ) return 0; if( N%2==1 ) return N*(N-9)*(N-10)*(N-11)*(N-12)*(N-13)*(N-14)*(N-15); enum {VV, OV, VO}; // Vacant, Occupied long long dp[2][9][3] = {0}; dp[0][1][OV] = 1; for(int i=1; i<=N/2-1; ++i) for(int j=1; j<=8; ++j) dp[i&1][j][VV] = dp[i-1&1][j][VV]+dp[i-1&1][j][OV]+dp[i-1&1][j][VO], dp[i&1][j][OV] = dp[i-1&1][j-1][VV]+dp[i-1&1][j-1][VO], dp[i&1][j][VO] = dp[i-1&1][j-1][VV]+dp[i-1&1][j-1][OV]; return (dp[N/2-1&1][8][VV]+dp[N/2-1&1][8][VO])*N*5040; } int main() { for(int N; cin>>N,N; ) cout << solve(N) << endl; }