#include <bits/stdc++.h>
using namespace std;
void fun() {
  long long a, s, d, i, j;
  cin >> a;
  vector<long long> v1, v2, v3;
  for (i = 2; i <= a / 2 + 1; i++) v1.push_back(i);
  for (i = a / 2 + 2; i <= a; i++) {
    v2.push_back(i);
  }
  long long rez;
  cout << 1 << " " << a - 1 << " 1 ";
  for (i = 2; i <= a; i++) cout << i << " ";
  cout << endl;
  cin >> rez;
  if (a == 2) {
    cout << "-1 " << rez << endl;
    return;
  }
  while (v1.size() > 0 && v2.size() > 0) {
    cout << 1 << " " << v1.size() << " " << 1 << " ";
    for (i = 0; i < v1.size(); i++) cout << v1[i] << " ";
    cout << endl;
    long long ch;
    cin >> ch;
    if (ch == rez) {
      v3.clear();
      v3 = v1;
      v1.clear();
      v2.clear();
      if (v3.size() > 2) {
        for (i = 0; i < v3.size() / 2; i++) v1.push_back(v3[i]);
        for (i = v3.size() / 2; i < v3.size(); i++) v2.push_back(v3[i]);
      }
      if (v3.size() == 1) v1 = v3;
      if (v3.size() == 2) {
        v1.push_back(v3[0]);
        v2.push_back(v3[1]);
      }
    } else {
      v3.clear();
      v3 = v2;
      v1.clear();
      v2.clear();
      if (v3.size() > 2) {
        for (i = 0; i < v3.size() / 2; i++) v1.push_back(v3[i]);
        for (i = v3.size() / 2; i < v3.size(); i++) v2.push_back(v3[i]);
      }
      if (v3.size() == 1) v1 = v3;
      if (v3.size() == 2) {
        v1.push_back(v3[0]);
        v2.push_back(v3[1]);
      }
    }
  }
  long long otv = v1[0], viv;
  cout << 1 << " " << a - 1 << " " << otv << " ";
  for (i = 1; i <= a; i++)
    if (i != otv) cout << i << " ";
  cout << endl;
  cin >> viv;
  cout << -1 << " " << viv << endl;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long i, a, s, j;
  cin >> a;
  for (i = 0; i < a; i++) fun();
}
