设 ctz(x) 为 x 二进制下末尾 0 的个数,如 ctz(10010002)=3 。
设 ppc(x) 为 x 二进制下 1 的个数,如 ppc(10010002)=2 。
定义一个数是好数,当且仅当 ctz(x)=ppc(x) 。
给定 Q ,有 Q 次询问,每次给出区间 [l,r] ,你需要求出 [l,r] 中任意一个好数,或判断无解。
输入格式
第一行,一个正整数 Q 。
接下来 Q 行,每行两个正整数 l,r 。
输出格式
每个询问输出一行,如果区间 [l,r] 中存在好数,那么输出任意一个好数,否则输出 −1 。
样例一
input
5 38 47 57 86 23 24 72 83 32 33
output
-1 68 -1 -1 -1
样例二、三
见下发文件。
数据范围与提示
本题采用子任务捆绑测试。
对于所有数据,保证 1≤Q≤105,1≤l≤r≤109 。
子任务编号 | 特殊性质 | 分值 |
---|---|---|
1 | 1≤l≤r≤107 | 30 |
2 | l,r 在 [1,109] 中随机 | 30 |
3 | 无 | 40 |