#include<algorithm>
#include<iostream>
#include<string>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
int main(){
  int i,j;
  int a[53];
  for(i=1;i*i*i<151200;i++)
    a[i-1]=i*i*i;
  int b[95];
  b[0]=1;
  for(i=1;b[i-1]+(i+1)*(i+2)/2<151200;i++)
    b[i]=b[i-1]+(i+1)*(i+2)/2;
  bool c[151201];
  memset(c,0,151201);
  for(i=0;i<53;i++)
    c[a[i]]=1;
  for(i=0;i<95;i++)
    c[b[i]]=1;
  for(i=0;i<53;i++){
    for(j=0;j<95;j++){
      if(a[i]+b[j]<151201)
	c[a[i]+b[j]]=1;
    }
  }
  int n;
  while(cin>>n&&n){
    for(;c[n]==0;n--);
    cout<<n<<endl;
  }
  return 0;
}