#include <iostream>
#include <vector>
using namespace std;

vector<int> co;

int main(){
    for(int i=1;i<=17;i++){
        co.push_back(i*i);
    }
    int dp[310]={};
    dp[0]=1;
    for(int i=0;i<17;i++){
        for(int j=0;j<=300;j++){
            if(j+co[i]>300) break;
            dp[j+co[i]] += dp[j];
        }
    }
    int n;
    while(cin>>n,n){
        cout << dp[n] << endl;
    }
    return 0;
}