#include<iostream>
#include<cstring>using namespace std;int main(){ int c1[10000],c2[10000]; int i,j,k; int n; while(cin>>n) { memset(c1,0,sizeof(c1)); memset(c2,0,sizeof(c2)); for(i=0;i<=n;i++) c1[i]=1;//对第一个括号内函数系数初始化 for(i=2;i<=n;i++)//从第二个括号开始进行括号合并(n个括号),循环多少次即要做多少次乘法 { for(j=0;j<=n;j++)//对第一个括号进行循环相乘,系数大于N的都对结果无影响(j为第一个括号的系数) { for(k=0;k+j<=n;k+=i)//对第二个人括号循环相乘,系数之和(即k+j)大于N的可以忽略不计(k为第二个括号的系数) { c2[j+k]+=c1[j]*1;//系数为J的次数与系数为K的次数的系数之积赋值于结果 } } for(j=0;j<=n;j++)//将结果赋值到C1(即运算中的前一个括号) { c1[j]=c2[j];c2[j]=0; } } cout<<c1[n]<<endl; } return 0;}