#include<stdio.h> int t[301]; int b[301]; int main() { int n,i,j,k; while(scanf("%d",&n)!=EOF&&n) { for(i=0;i<=n;i++) { t[i]=1; b[i]=0; } for(i=2;i<=17;i++) { for(j=0;j<=n;j++) { for(k=0;j+k<=n;k+=i*i) { b[j+k]+=t[j]; } } for(j=0;j<=n;j++) { t[j]=b[j]; b[j]=0; } } printf("%d\n",t[n]); } }