#include <stdio.h>

main(){
  int data[1000], i, min2, j, k, n, min, ans[1000000], ans2[1000000];

  for(i=0;i<1000;i++){
    data[i]=(i+1)*(i+2)*(i+3)/6;
  }

  ans[0]=0;
  ans2[0]=0;
  for(i=1;i<1000000;i++){
    min=1000000;
    min2=1000000;
    for(j=0;data[j]<=i;j++){
      if(min>ans[i-data[j]]+1) min=ans[i-data[j]]+1;
      if(data[j]%2!=0){
	if(min2>ans2[i-data[j]]+1) min2=ans2[i-data[j]]+1;
      }
    }
    ans[i]=min;
    ans2[i]=min2;
  }
  while(1){
    scanf("%d", &n);
    if(n==0) break;
    printf("%d %d\n", ans[n], ans2[n]);
  }
  return 0;
}