#include <bits/stdc++.h>
#define ll long long
using
namespace
std;
ll f[1000010];
ll dfs(ll i)
{
if
(f[i]!=-1)
{
return
f[i];
}
return
f[i/2]+f[i%2];
}
long
long
read(){
long
long
res = 0;
int
flag = 0;
char
ch;
if
((ch =
getchar
()) ==
'-'
){
flag = 1;
}
else
if
(ch >=
'0'
&& ch <=
'9'
){
res = ch -
'0'
;
}
while
((ch =
getchar
()) >=
'0'
&& ch <=
'9'
){
res = res * 10 + (ch -
'0'
);
}
// if(flag) printf("a[i] = %I64d\n",-res);
// else printf("a[i] = %I64d\n",res);
return
flag ? -res : res;
}
int
main()
{
memset
(f,-1,
sizeof
(f));
ios::sync_with_stdio(
false
);
f[0]=0; f[1]=1;
for
(ll i=2;i<=1e6;i++)
{
f[i]=dfs(i);
}
ll t;
t=read();
while
(t--)
{
ll n; n=read();
ll count=0;
while
(n>1e6)
{
if
(n%2!=0)n--,n/=2,count++;
while
(n%2==0)n=n/2;
}
ll ans=f[n];
ans+=count;
printf
(
"%lld %lld\n"
,ans,(ll)
pow
((ll)2,(ll)ans)-1);
}
return
0;
}