#include<iostream>#include<stdio.h>#include<string.h>using namespace std;int coin[]={1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289};int a[301];int ans[301];int main(){ int i,j,n; memset(ans,0,sizeof(ans)); ans[0]=1; for(i=0;i<17;i++) for(j=coin[i];j<=300;j++) ans[j]+=ans[j-coin[i]]; while(scanf("%d",&n)) { if(n==0)break; printf("%dn",ans[n]); }}


