// 活动地址: 牛客春招刷题训练营 - 编程打卡活动
#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;
}
// 活动地址: 牛客春招刷题训练营 - 编程打卡活动