#include <iostream>
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;
}