#include<cstdio>
#include<algorithm>
using namespace std;
int line[25][25],cnt,sum,num[2],ans,n,num_1[2];
int DFS(int x)//遍历每一行
{
if(x==n)
{
line[x][1]=(line[x-1][1]==line[x-1][2]?1:0);
num[line[x][1]]++;
if(num[0]==num[1]) ans++;
return 0;
}
for(int i=1;i<=n-x+1;i++)
{
line[x][i]=(line[x-1][i]==line[x-1][i+1]?1:0);
num[line[x][i]]++;
if(num[line[x][i]]>(sum/2)) return 0;
}
if(!DFS(x+1)) return 0;
return 1;
}
int DFS_1(int x)//遍历第一行
{
if(x>n)
{
num[1]=num_1[1];num[0]=num_1[0];
if(DFS(2)) ans++;
return 0;
}
for(int i=0;i<=1;i++)
{
line[1][x]=i;
num_1[i]++;
DFS_1(x+1);
num_1[i]--;
}
return 0;
}
int main()
{
while(1)
{
scanf("%d",&n);
if(!n) break;
sum=0;ans=0;
for(int i=1;i<=n;i++) sum+=i;
num[1]=0;num[0]=0;
DFS_1(1);
printf("%d %d\n",n,ans);
}
return 0;
}