#include<stdio.h>

int main(){

	int n,i,j;
	int square[18];
	int count[301];

	for(i=0;i<18;i++){
		square[i]=i*i;
	}

	count[0]=1;

	for(i=1;i<18;i++){
		for(j=square[i];j<301;j++){
			count[j]+=count[j-square[i]];
		}
	}

	while(1){
		scanf("%d",&n);
		if(n==0){
			break;
		}
        printf("%d\n",count[n]);
	}
}