#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t;
  cin >> t;
  int n, k1, k2, val_p, val_c;
  vector<int> set_p, set_lc, set_rc;
  while (t--) {
    cin >> n;
    k1 = 1;
    k2 = n - 1;
    set_p.clear();
    set_lc.clear();
    set_rc.clear();
    for (int i = 1; i <= k2; i++) set_p.push_back(i + 1);
    cout << k1 << " " << k2 << " 1 ";
    for (int i = 0; i < k2; i++) cout << set_p[i] << " ";
    cout << "\n";
    cout.flush();
    cin >> val_p;
    if (val_p == -1) exit(0);
    while (k2 != 1) {
      for (int i = 0; i < k2 / 2; i++) set_lc.push_back(set_p[i]);
      for (int i = k2 / 2; i < k2; i++) set_rc.push_back(set_p[i]);
      k2 = set_lc.size();
      cout << k1 << " " << k2 << " 1 ";
      for (int i = 0; i < k2; i++) cout << set_lc[i] << " ";
      cout << "\n";
      cout.flush();
      cin >> val_c;
      if (val_c == -1) exit(0);
      set_p.clear();
      if (val_c == val_p)
        set_p = set_lc;
      else
        set_p = set_rc;
      set_lc.clear();
      set_rc.clear();
      k2 = set_p.size();
    }
    cout << k1 << " " << n - 1 << " " << set_p[0] << " ";
    for (int i = 0; i < n; i++) {
      if (i + 1 == set_p[0]) continue;
      cout << i + 1 << " ";
    }
    cout << "\n";
    cout.flush();
    cin >> val_p;
    if (val_p == -1) exit(0);
    cout << "-1 " << val_p << "\n";
    cout.flush();
  }
  return 0;
}
