/**
A:Maximum Multiple
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6298
题意:给出一个n 找出三个数 x y z
满足的条件 x|n ,y|n ,z|n 且满足x*y*z 最大;
由于 x+y+z=n;
-------->x/n+y/n+z/n=1
由于窝们要使得x*y*z最大 因此不妨先设
a=x/n,b=y/n,c=z/n;--->a+b+c=1;
换句话来说就是就是将上述式子化简为1/(n/x)+1/(n/y)+1/(n/z)=1;
也就是说分子为1的 满足条件的a b c 三元组;
一共两种情况 (1/2,1/4,1/4) (1/3,1/3,1/3)
****tricks****
如果一个数(eg : 12 )同时满足上面的条件(整除4 或 3 ) 则应当需满足x*y*z最大
*/
#include<bits/stdc++.h>
#define ll unsigned long long
using namespace std;
int main (){
ll t;scanf("%I64d",&t);
while(t--){
ll n;scanf("%I64d",&n);
if(n%3==0) printf("%I64d\n",(n/3)*(n/3)*(n/3));
else if(n%4==0) printf("%I64d\n",(n/2)*(n/4)*(n/4));
else puts("-1");
}
return 0;
}