#include <stdio.h>

int main(void){
	while(1){
		int n, i=0, j, k;
		int a[100];
		int dp[1000001];
		int dq[1000001];
		
		for(k=0; k<1000001; k++){
			dp[k] = 25000;
			dq[k] = 25000;
		}
		
		dp[0]=0;
		dq[0]=0;
		
		scanf("%d", &n);
		if(n==0) break;
		
		while(1){
			a[i] = (i+1)*(i+2)*(i+3)/6;
			if(a[i] > n) break;
			i++;
		}
			
		for(k=0; k<=n; k++){
			for(j=0; j<i; j++){
				if(k-a[j] >= 0) {
					if(dp[k] > dp[k-a[j]]+1)
						dp[k] = dp[k-a[j]]+1;
					else dp[k] = dp[k];
					
					if(a[j]%2 != 0){
						if(dq[k] > dq[k-a[j]]+1)
							dq[k] = dq[k-a[j]]+1;
						else dq[k] = dq[k];
					}
					
				}
			}
		}
	
		//for(k=0; k<=n; k++)
			//printf("dp[%d]=%d\n",k,dp[k]);
		
		printf("%d %d\n", dp[n], dq[n]);
	}

	return 0;
}