#include <bits/stdc++.h>
using namespace std;
#define all(a) a.begin(),a.end()
 
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    vector<int> dp(1000001,0);
    vector<int> dp2(1000001,0);
    iota(all(dp),0);
    iota(all(dp2),0);
    for(int i=2;(i*(i+1)*(i+2)/6)<=1000000;i++){
        int po=(i*(i+1)*(i+2)/6);
        for(int j=0;j+po<=1000000;j++){
            dp[j+po]=min(dp[j+po], dp[j]+1);
        }
        if(po%2==0)continue;
        for(int j=0;j+po<=1000000;j++){
            dp2[j+po]=min(dp2[j+po], dp2[j]+1);
        }
    }
    while(cin>>n,n){
        cout<<dp[n]<<" "<<dp2[n]<<endl;
    }
    return 0;
}
