#include <bits/stdc++.h>// 贪心,从最高位开始首先统计有多少 1看k 是否可以补全 该位的1
using namespace std;
const int N =2e5+10;
int a[N];
int pos[35];
int main()
{
int t;
cin>>t;
while(t--)
{
memset(pos,0,sizeof pos);
int n,k;
cin>>n>>k;
for(int p=1;p<=n;p++) cin>>a[p];
for(int i=30;i>=0;i--)
{
for(int j=1;j<=n;j++)
{
if((a[j]>>i)&1) pos[i]++;// 统计每一位有多少1
}
}
int res=0;
for(int i=30;i>=0;i--)
{
if(k>=n-pos[i])
{
k-=n-pos[i];
res|=1<<i;
}
}
cout<<res<<endl;
}
return 0;
}