#include<bits/stdc++.h>
// #define endl '\n'
#define x first
#define y second
#define pb push_back
#define lowbit(x) (x & (-x))
#define point(n) cout << fixed << setprecision(n)
#define YN(flag) cout << (flag ? "YES" : "NO") << endl
#define debug(x) cout << "debug " << x << endl
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll,ll> PLL;
typedef pair<ull,ull> UPLL;
typedef pair<int,int> PII;
typedef pair<double,double> PDD;
const int INF = 0x3f3f3f3f;
const ll mod = 1e9 + 7;
const double PI = acos(-1);
const double eps = 1e-7;
const int N = 1000010, M = 2 * N;
int n, m;
int ask(int x)
{
vector<int> a, b;
for(int i = 1; i <= n; i++)
{
if(i >> x & 1)
a.push_back(i);
else
b.push_back(i);
}
// if(a.empty() || b.empty()) return 0;
cout << a.size() << " " << b.size() << " ";
for(auto e : a)
cout << e << " ";
for(auto e : b)
cout << e << " ";
cout << endl;
int res;
cin >> res;
return res;
}
void solve()
{
cin >> n;
int ans = 0;
for(int i = 0; i <= __lg(n); i++)
ans = max(ans, ask(i));
cout << "-1 " << ans << endl;
}
int main()
{
ios::sync_with_stdio(false), cin.tie(nullptr);
int _ = 1;
cin >> _;
while(_--)
{
solve();
}
}
455A - Boredom | 1099A - Snowball |
1651D - Nearest Excluded Points | 599A - Patrick and Shopping |
237A - Free Cash | 1615B - And It's Non-Zero |
1619E - MEX and Increments | 34B - Sale |
1436A - Reorder | 1363C - Game On Leaves |
1373C - Pluses and Minuses | 1173B - Nauuo and Chess |
318B - Strings of Power | 1625A - Ancient Civilization |
864A - Fair Game | 1663B - Mike's Sequence |
448A - Rewards | 1622A - Construct a Rectangle |
1620A - Equal or Not Equal | 1517A - Sum of 2050 |
620A - Professor GukiZ's Robot | 1342A - Road To Zero |
1520A - Do Not Be Distracted | 352A - Jeff and Digits |
1327A - Sum of Odd Integers | 1276A - As Simple as One and Two |
812C - Sagheer and Nubian Market | 272A - Dima and Friends |
1352C - K-th Not Divisible by n | 545C - Woodcutters |