t=int(input())
for _ in range(t):
n,k=map(int,input().split())
a=list(map(int,input().split()))
if a[0]!=1 or k==0:
print(1)
continue
c=1
d=0
jmp=0 while jmp!=k:
for i in range(d,n+1):
if a[i-1]<c+i:
if i==n:
c+=i
d=i
jmp+=1
break
elif c+i<a[i]:
c+=i
d=i
jmp+=1
break
print(c)
#include <bits/stdc++.h>
#ifndef ONLINE_JUDGE
#include "templates/temp.h"
#endif
using namespace std;
using ll=long long;
void solve(){
int n,k;cin>>n>>k;
vector<ll>a(n);
for(auto &x:a){
cin>>x;
}
ll ans=0,l=1,r=1e12;
while(l<=r){
ll mid=(l+r)>>1;
ll cur=mid;
for(int i=0;i<k;i++){
cur-=upper_bound(begin(a),end(a),cur)-begin(a);
}
if(cur>0){
ans=mid;
r=mid-1;
}
else{
l=mid+1;
}
}
cout << ans << endl;
}
int32_t main(){
ios_base::sync_with_stdio(false);cin.tie(NULL);
int t=1;
cin>>t;
while(t-->0){
solve();
}
}
1373D - Maximum Sum on Even Positions | 1574C - Slay the Dragon |
621A - Wet Shark and Odd and Even | 1395A - Boboniu Likes to Color Balls |
1637C - Andrew and Stones | 1334B - Middle Class |
260C - Balls and Boxes | 1554A - Cherry |
11B - Jumping Jack | 716A - Crazy Computer |
644A - Parliament of Berland | 1657C - Bracket Sequence Deletion |
1657B - XY Sequence | 1009A - Game Shopping |
1657A - Integer Moves | 230B - T-primes |
630A - Again Twenty Five | 1234D - Distinct Characters Queries |
1183A - Nearest Interesting Number | 1009E - Intercity Travelling |
1637B - MEX and Array | 224A - Parallelepiped |
964A - Splits | 1615A - Closing The Gap |
4C - Registration System | 1321A - Contest for Robots |
1451A - Subtract or Divide | 1B - Spreadsheet |
1177A - Digits Sequence (Easy Edition) | 1579A - Casimir's String Solitaire |