#include<iostream>
#include<cmath>
using namespace std;
long long d[5005],v[5005];
int main()
{
long long i,j,n,m,k,t,l,r,mid,x,ans,now,te;
cin>>t;
while(t--)
{
cin>>n;
for(i=1;i<=n;i++) v[i]=1;
m=n;
while(m)
{
cout<<"? 1 "<<n<<endl;
fflush(stdout);
cin>>x;
ans=0;
l=1;
r=m;
mid=(l+r)/2;
while(l<=r)
{
cout<<"? 1 "<<mid<<endl;
fflush(stdout);
cin>>k;
if(k==x-1)
{
ans=max(ans,mid);
l=mid+1;
mid=(l+r)/2;
}
else if(k<x-1)
{
ans=max(ans,mid);
l=mid+1;
mid=(l+r)/2;
}
else
{
r=mid-1;
mid=(l+r)/2;
}
}
te=ans+1;
while(v[te]==0&&te<=n) te++;
if(te!=n+1) ans=te;
if(ans==0)
{
if(m!=1) cout<<"? 2 1"<<endl;
d[1]=m;
m--;
}
else
{
if(m!=1)
{
cout<<"? 2 "<<ans<<endl;
fflush(stdout);
}
v[ans]=0;
d[ans]=m;
m--;
}
}
cout<<"! ";
for(i=1;i<=n;i++) cout<<d[i]<<" ";
cout<<endl;
fflush(stdout);
}
}