#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,id,t,T,ans,c[100005];
int get(int l,int r)
{
	while(l<r)
	{
		int mid=(l+r)>>1;
		printf("? %d %d\n",mid-l+1,1);
		for(int i=l;i<=mid;i++)
		{
			if(i<mid) printf("%d ",i);
			else printf("%d\n",i);
		}
		printf("%d\n",id);
		fflush(stdout);
		scanf("%d",&t);
		if(t)
		{
			r=mid;
		}
		else l=mid+1;
	}
	return l;
}
int main()
{
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&n);
		id=0,ans=0;
		for(int i=1;i<=n;i++) c[i]=0;
		for(int i=2;i<=n;i++)
		{
			printf("? %d %d\n",i-1,1);
			for(int j=1;j<=i-1;j++) 
			{
				if(j<i-1) printf("%d ",j);
				else printf("%d\n",j);
			}
			printf("%d\n",i);
			fflush(stdout);
			scanf("%d",&t);
			if(t)
			{
				id=i;
				int p=get(1,i-1);
				c[p]=1;
				c[i]=1;
				break;
			}
		}
		for(int i=id+1;i<=n;i++)
		{
			printf("? 1 1\n");
			printf("%d\n%d\n",id,i);
			fflush(stdout);
			scanf("%d",&t);
			if(t)
			{
				c[i]=1;
			}
		}
		printf("! ");
		for(int i=1;i<=n;i++) if(!c[i]) ans++;
		printf("%d ",ans);
		for(int i=1;i<=n;i++) if(!c[i]) printf("%d ",i);
		fflush(stdout);
	}
	
	return 0;
} 