//#include<bits/stdc++.h>
//using namespace std;
//int n,ans;
//int a[100]; //a[i]=j 表示第i行第j列的皇后
//bool col[100],obl1[100],obl2[100];//列标记,对角线标记
//void dfs(int row)
//{
//for(int i=1;i<=n;i++)
//{
//if(!col[i] && !obl1[i+row]&&!obl2[i-row+n])
//{
//col[i]=obl1[i+row]=obl2[i-row+n]=true;//占领这里
//if(row==n)ans++;
//else dfs(row+1);
//col[i]=obl1[i+row]=obl2[i-row+n]=false;//回溯
//}
//}
//return ;
//}
//int main()
//{
//while(cin>>n)
//{
//ans=0;
//if(n==0)
//return 0;
//dfs(1);
//cout<<ans<<endl;
//}
//}
#include<bits/stdc++.h>
using namespace std;
int balala[]={1,0,0,2,10,4,40,92,352,724};
int main()
{
int n;
while(cin>>n)
{
if(n==0)
return 0;
cout<<balala[n-1]<<endl;
}
}
下面这个是因为上面这个超时才弄的。。。。。。