汉堡猪猪分糖果
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}汉堡猪猪有 n 颗糖果,准备分给 m 位小朋友,且要求每位小朋友至少获得一颗糖果。设最后第 j 位小朋友得到的糖果数为 c_j,则有

\displaystyle c_1+c_2+\dots+c_m = n,\quad c_j \geqq 1

\hspace{15pt}汉堡猪猪关注分配结果的按位与值

\displaystyle c_1\ \&\ c_2\ \&\ \dots\ \&\ c_m

\hspace{15pt}并想让该值尽可能大。请你帮他计算在最优分配下该按位与的最大可能值。

输入描述:

\hspace{15pt}每个测试文件包含多组测试数据。第一行输入整数 T\left(1 \leqq T \leqq 10^5\right) 表示数据组数。
\hspace{15pt}随后 T 行,每行输入两个整数 n,m\left(1 \leqq m \leqq n \leqq 10^9\right) 表示糖果总数与小朋友人数。

输出描述:

\hspace{15pt}对每组测试数据,输出一行,表示在满足 c_j \geqq 1 的前提下,c_1\ \&\ c_2\ \&\ \dots\ \&\ c_m 的最大可能值。
示例1

输入

复制
4
8 3
3 2
5 1
514114 114514

输出

复制
2
0
5
4