#include using namespace std; inline int read(){ int x=0;char ch=getchar(); while(!isdigit(ch))ch=getchar(); while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch-'0');ch=getchar();} return x; } inline void print(const int x){ if(x>9)print(x/10); putchar(x%10+'0'); } struct node{int f;bool x;node():x(false){}}; int t,n,k,ans,a[100002]; unordered_mapm; inline int get(int p){ return (!m[p].x)?p:m[p].f=get(m[p].f); } int main(){ t=read(); while(t--){ n=read(),k=read(),ans=0;m.clear(); for(int i=0;i