int query_kth(const int *a, int n_a, const int *b, int n_b, const int *c, int n_c, int k) {
int pa = 0, pb = 0, pc = 0;
const int INF = 0x7fffffff;
while (k > 1) {
int t = k / 3;
if (t == 0) t = 1;
int va = (pa + t - 1 < n_a) ? a[pa + t - 1] : INF;
int vb = (pb + t - 1 < n_b) ? b[pb + t - 1] : INF;
int vc = (pc + t - 1 < n_c) ? c[pc + t - 1] : INF;
if (va <= vb && va <= vc) pa += t;
else if (vb <= va && vb <= vc) pb += t;
else pc += t;
k -= t;
}
int va = (pa < n_a) ? a[pa] : INF;
int vb = (pb < n_b) ? b[pb] : INF;
int vc = (pc < n_c) ? c[pc] : INF;
int ans = va;
if (vb < ans) ans = vb;
if (vc < ans) ans = vc;
return ans;
}