#include using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); { int Q = -1; cin >> Q; int N,M; cin >> N >> M; cout << Q << " " << N << " " << M << endl; vector A(N+M); for(auto &a : A) cin >> a; sort(A.begin(),A.end()); cout << A.at((N+M)/2) << endl; return 0; } string s; cin >> s; int Q; cin >> Q; int N,M; cin >> N >> M; if(s.at(0) == 'B') swap(N,M); vector> X(N); int idx = 0; for(auto &[x,p] : X) cin >> x,p = idx++; sort(X.begin(),X.end()); auto share = [&](int pos) -> int { assert(Q > 0),Q--; assert(pos < N); cout << "share " << pos+1 << endl; int ret; cin >> ret; if(ret == -1) exit(0); return ret; }; auto answer = [&](int x) -> void { cout << "answer " << x << endl; exit(0); }; answer(1'000'000'000); { int l1 = 0,r1 = N,l2 = 0,r2 = M; int up = 0,down = 0,dec = (N+M)/2; while(true){ int len1 = r1-l1,len2 = r2-l2; if(up+len2 < dec){ int del = dec-(up+len2); up += del,r1 -= del,len1 -= del; } if(down+len2 < dec){ int del = dec-(down+len2); down += del,l1 += del,len1 -= del; } if(up+len1 < dec){ int del = dec-(up+len1); up += del,r2 -= del,len2 -= del; } if(down+len1 < dec){ int del = dec-(down+len1); down += del,l2 += del,len2 -= del; } if(len1 <= 2 && len2 <= 2){ vector V; for(int i=l1; i v2 || (v1 == v2 && s.at(0) == 'A')){ int u = r1-m1-1,d = m2-l2; up += u,len1 -= u,r1 -= u; down += d,len2 -= d,l2 += d; } else{ int u = r2-m2-1,d = m1-l1; up += u,len2 -= u,r2 -= u; down += d,len1 -= d,l1 += d; } } } }