#include<bits/stdc++.h>
using namespace std;

int main(){
  int n;
  while(1){
    cin>>n;
    if(!n)break;
    int ans=0;
    for(int i=0;i*i*i<=n;i++)
      for(int j=0;j*(j+1)*(j+2)/6<=n;j++){
	if(i*i*i+j*(j+1)*(j+2)/6>n)break;
	ans=max(ans,i*i*i+j*(j+1)*(j+2)/6);
      }
    cout<<ans<<endl;
  }
  return 0;
}