牛牛的反函数
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

牛牛定义了一个递归函数F(x),x为正整数且定义域范围



现在牛牛想要你编写一个程序实现这个函数的反函数功能,也就是说我们输入一个正整数y(),你要找到范围在内的正整数x,使得F(x)=y。
如果在内不存在任何一个正整数x使得F(x)=y。请输出"-1"(不含引号)代表无解,如果有多个满足条件的x,你只用随便输出一个大小在内的合法解即可

输入描述:

第一行输入一个正整数表示有T组测试案例,对于每组案例:

输入一行一个正整数y,代表函数值。

输出描述:

对于每组案例,输出一行一个整数代表问题的答案。

如果在不存在任意一个正整数的函数值等于给定的y,请输出"-1"。

否则请输出任意的x满足条件F(x)=y。要求x的范围在内。
示例1

输入

复制
11
1
2
3
4
5
6
7
8
9
10
1024

输出

复制
1
2
4
8
16
32
64
128
256
512
-1