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

题目描述

\hspace{15pt}在魔法学院的期末考试中,小蓝面临着一场特殊的魔法考核。他需要在 n 天内完成一系列魔法实验,最终要成功炼制出 m 颗具有强大魔力的魔法水晶。
\hspace{15pt}初始时,小蓝手中仅有 1 颗魔法水晶的雏形。在这 n 天的实验过程里,小蓝每天最多可施展一次特殊魔法。每次施展魔法时,他可以付出 c 点魔力值(c \geq 1,且 c 为整数),将当前手中所有的魔法水晶雏形进行复制。具体规则是:若当前小蓝手中有 a 颗魔法水晶雏形,付出 c 点魔力值施展魔法后,魔法水晶雏形的数量会变为 (c + 1) \times a 颗。
\hspace{15pt}小蓝希望以最小的魔力消耗完成考核,恰好炼制出 m 颗魔法水晶。请你帮小蓝计算出达成目标所需的最小魔力代价。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leq T\leq 10^5\right) 代表数据组数,每组测试数据描述如下:
\hspace{15pt}在一行上输入两个整数 n,m\left(1\leq n,m \leq 10^5\right),表示魔法实验的天数和最终需要炼制出的魔法水晶数量。

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行输出一个整数,表示小蓝炼制出 m 颗魔法水晶所需消耗的最小魔力值。
示例1

输入

复制
3
1 5
2 6
8 27720

输出

复制
4
3
27