#include main(){int T[300],i,j,n;freopen("coins.txt","r",stdin);for(i=0;i<300;i++)T[i]=0; T[0]=1;for(j=17;j>=1;j--)for(i=j*j;i<300;i++)T[i]+=T[i-j*j];while(scanf("%d",&n) !=EOF){if(n==0)break;printf("%d\n",T[n]);}}