sub z3 (l0:[]) = z3 - l0 - l0
sub z3 (l0:l1:ls) =
  if z3 >= l0 * 2
  then z3 - l0 - l0
  else if z3 >= l0 + l1
       then z3 - l0 - l1
       else sub z3 (l1:ls)

ans z =
  let z3 = z^3
      ls = map (\ x -> x^3) $ reverse $ [1..(z-1)]
  in
    sub z3 ls

main = do
  c <- getContents
  let i = takeWhile (/= 0) $ map read $ lines c :: [Int]
      o = map ans i
  mapM_ print o
  

