/*#include<stdio.h>//超时
#include<math.h>
int a[11];
void huanghou(int n)
{
int i=1,j,g,sum=0;
a[1]=1;
while(1)
{
g=1;
for(j=1;j<i;j++)
if(a[i]==a[j]||i-j==abs(a[i]-a[j]))
{
g=0;
break;
}
if(g&&i==n) sum++;
if(g&&i<n)
{
a[++i]=1;
continue;
}
while(a[i]==n) i--;
if(i>0) a[i]++;
else break;
}
printf("%d\n",sum);
}
int main()
{
int n;
while(scanf("%d",&n)&&n)
huanghou(n);
return 0;
}
*/
#include<stdio.h>
int a[11]={0,1,0,0,2,10,4,40,92,352,724};
int main()
{
int n;
while(scanf("%d",&n)&&n)
printf("%d\n",a[n]);
return 0;
}
#include<math.h>
int a[11];
void huanghou(int n)
{
int i=1,j,g,sum=0;
a[1]=1;
while(1)
{
g=1;
for(j=1;j<i;j++)
if(a[i]==a[j]||i-j==abs(a[i]-a[j]))
{
g=0;
break;
}
if(g&&i==n) sum++;
if(g&&i<n)
{
a[++i]=1;
continue;
}
while(a[i]==n) i--;
if(i>0) a[i]++;
else break;
}
printf("%d\n",sum);
}
int main()
{
int n;
while(scanf("%d",&n)&&n)
huanghou(n);
return 0;
}
*/
#include<stdio.h>
int a[11]={0,1,0,0,2,10,4,40,92,352,724};
int main()
{
int n;
while(scanf("%d",&n)&&n)
printf("%d\n",a[n]);
return 0;
}