// 活动地址: 牛客春招刷题训练营 - 编程打卡活动
#include<iostream>
#include<algorithm>
#include<set>
#include<cmath>
#define int long long
using namespace std;
void solve(){
int n,m;
cin>>n>>m;
// 这题感觉又是之前在哪见过 好像是周赛之前出过
// 直接模拟 会超时 所以得稍微优化下
while(m--){
if(n>4){
if((int)sqrt(n)*(int)sqrt(n)==n)n=sqrt(n);
else n=(int)sqrt(n)+1;
}
else if(n>2){
n=n/2+(n%2?1:0);
}
// 这里可以优化
else {
cout<<n-m-1<<"\n";
return ;
}
}
cout<<n<<"\n";
}
signed main(){
int T=1;
cin>>T;
while(T--){
solve();
}
return 0;
}
// 活动地址: 牛客春招刷题训练营 - 编程打卡活动