func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long logN = 20;   const long long M = 1000000007;   const long long INF = 1e12;   const long long N = 100005;   void solve() {     long long n, k;     cin >> n >> k;     set<long long> s;     while (s.size() < 30 and s.size() < (n - 1)) {       long long i = rand() % n + 1;       if (i != 1 and s.find(i) == s.end()) {         s.insert(i);         cout <<  ? 1 1  << endl;         cout << 1 << endl;         cout << i << endl;         string gt;         cin >> gt;         if (gt ==  SECOND ) {           cout <<  ! 1  << endl;           return;         }       }     }     long long l = 2, r = 2;     for (long long i = 0; i < 10; i++) {       long long dif = (r - l + 1);       cout <<  ?   << dif <<     << dif << endl;       for (long long i = 1; i < dif + 1; i++) cout << i <<    ;       cout << endl;       for (long long i = l; i < l + dif; i++) cout << i <<    ;       cout << endl;       string s;       cin >> s;       if (s ==  FIRST ) break;       l = r + 1;       r = 2 * r;       r = min(r, n);     }     while (r > l) {       long long m = (l + r) / 2;       long long dif = (m - l + 1);       cout <<  ?   << dif <<     << dif << endl;       for (long long i = 1; i < dif + 1; i++) cout << i <<    ;       cout << endl;       for (long long i = l; i < l + dif; i++) cout << i <<    ;       cout << endl;       string s;       cin >> s;       if (s ==  EQUAL )         l = m + 1;       else         r = m;     }     cout <<  !   << l << endl;     return;   }   int main() {     long long no;     cin >> no;     while (no--) {       solve();     }     return 0;   }   