小数字
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小娴给阿笙出了一种简单数学题,小娴给出数字 n ,并规定三种操作:

\hspace{23pt}\bullet\,n 为非负整数,开根号(向上取整),即 n \to \lceil \sqrt{n} \rceil
\hspace{23pt}\bullet\,对当前的数字 n1 ,即 n \to n - 1
\hspace{23pt}\bullet\,对当前数字除以 2(向上取整),即 n \to \lceil \frac{n}{2} \rceil

\hspace{15pt}现在可以对数字 n 操作 m 次,小娴想让阿笙计算出操作 m 次之后 n 最小可以为多少。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 2 \times 10^5\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}在一行上输入两个整数 n,m\left(1\leqq n, m\leqq 10^9\right) 代表初始数字、操作次数。

输出描述:

\hspace{15pt}对于每一组测试数据,在单独的一行上输出一个整数,代表操作 m 次之后 n 最小可以为多少。
示例1

输入

复制
3
10 1
2 1
2 100

输出

复制
4
1
-98

说明

\hspace{15pt}对于第一组测试数据,三种操作得到的答案依次为:10 \to \lceil \sqrt{10} \rceil = 410 \to 10 - 1 = 910 \to \lceil \frac{10}{2} \rceil = 5 。综上,最小答案为 4

\hspace{15pt}对于第二组测试数据,三种操作得到的答案依次为:2 \to \lceil \sqrt{2} \rceil = 22 \to 2 - 1 = 12 \to \lceil \frac{2}{2} \rceil = 1 。综上,最小答案为 1