/*
  AOJ 1109
  Title:Fermat's Last Theorem
  @kankichi573
*/
#include <stdio.h>

#define max(x,y) (((x)>(y))?(x):(y))

int cube[1112];
cube_root(int x)
{
  int i;

  for(i=0;i<=1111;i++)
    if(cube[i+1]>x && cube[i]<=x)
      return(i);
  return(0);
}


init()
{
  int i;

  for(i=0;i<=1111;i++)
    cube[i]=i*i*i;
}

main()
{
  int i,max_,sum,x,y,z;

  init();


  while(scanf("%d",&z) && z)
    {
      //printf("cu=%d cur=%d\n",cube[z],cube_root(cube[z]/2));
      max_=0;
      for(x=1;x<=cube_root(cube[z]/2);x++)
	{
	  y = cube_root(cube[z]-cube[x]);
	  //printf("xy=%d %d\n",x,y);
	  sum = cube[x]+cube[y];
	  //printf("xy=%d %d %d\n",x,y,sum);
	  max_=max(max_,sum);
	}
      printf("%d\n",cube[z]-max_);
    }

  return(0);

}