/***********************************************
******用循环队列解决(a+b)i次方的二项式展开式的系数*****
************************************************/
#include<stdio.h>
#define MAXSIZE 50
int main(void)
{
int num[MAXSIZE];
//first队头指针,rear对尾指针,last当前项的最后一个系数=rear-1
int first,rear,last;
int n,i;
while((scanf("%d",&n))!=EOF)//幂为n
{
num[0]=1;num[1]=1;//第一项
first=0;rear=2;
for(i=1;i<n;i++)//从幂为1到幂为n需要的循环次数
{
//从幂为m-1到幂为m的变化
last=rear-1;
while(first!=last)
{
num[rear]=num[first]+num[(first+1)%MAXSIZE];
first=(first+1)%MAXSIZE;
rear=(rear+1)%MAXSIZE;
}
num[rear]=1;
rear=(rear+1)%MAXSIZE;
}
while(first!=rear)
{
printf("%d ",num[first]);
first=(first+1)%MAXSIZE;
}
putchar('\n');
}
return 0;
}