/*
题目描述:
给定n和k,求从1开始的第k个不被n整除的数
*/
#include <iostream>
/*
令ans = x(以下过程除法结果均向下取整(int相除),用[]表示向下取整符号)
则x应满足 [x/n]+k=x , n,k均为输入
即在[1--x]内共有x个数字,其中有k个不被n整除, 即 x个数 = k个数 + [x/n]个数
有时,上式可以有两个解,一个是x,另一个是x-1,其中x为n的倍数,此时应取x-1
x = an+b(0<=b<=n-1) ==> a+k=an+b ==> k=a(n-1)+b
b = k%(n-1)
b==0时, k=a(n-1), a=[k/(n-1)]
x = an+b = [k/(n-1)]*n
但是此时,x也是n的倍数, x本身需要除去,
此时[1--x-1]内已有k个不被n整除的数,因此x应减1, 即x = [k/(n-1)]*n-1
[k/(n-1)]*n - 1
b==(n-1)时, k=(a+1)(n-1) , 则[k/(n-1)]=a+1
x = an+b = ([k/n-1]-1)*n + (n-1) = [k/(n-1)]*n-1
[k/(n-1)]*n - 1
b!=n-1时,1<=b<=(n-2) ==> a=[k/(n-1)], b=k%(n-1)
x = an+b = [k/(n-1)]*n + k%(n-1);
[k/(n-1)]*n + k%(n-1)
由于前两种情况k%(n-1) = 0,可以在表达式后加上"k%(n-1)"而不影响结果
可以统一为 x = [k/(n-1)]*n + k%(n-1)
*/
void solve2(){
int n,k;std::cin>>n>>k;
int ans = (k/(n-1))*n+k%(n-1) - (k%(n-1)==0);
std::cout<<ans<<std::endl;
}
/*
先让ans = k
先假设ans为第k个数,其中[1--k]中有k/n个能被n整除的数,它们不算在计数内
因此第k个数应为第k-k/n个数,
则让ans前进k/n个数,即ans += k/n
之后再检查前进的范围内是否有新的能被n整除的数,
如果有,说明前进后仍达不到第k个,需要再前进范围内能被n整除的数的个数
重复直到前进的范围内没有新的能被n整除的数
*/
void solve(){
int n,k;std::cin>>n>>k;
int counted = 0;
int ans = k;
while(ans/n > counted){
int temp = ans/n;
ans += temp-counted;
counted = temp;
}
std::cout<<ans<<std::endl;
}
int main(){
int t;std::cin>>t;
while(t--){
solve2();
}
}