#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 7;
const int mod = 998244353;
int ans[1007][1007];
int num[1007];
int n, k;
void print(int l, int r) {
  cout << "? " << r - l + 1 << ' ';
  for (int i = l; i <= r; i++) cout << i << ' ';
  cout << endl;
  fflush(stdout);
}
int ggg(int x) {
  for (int i = 1; i <= k; i++)
    for (int j = 1; j <= num[i]; j++) {
      if (ans[i][j] == x) {
        return i;
      }
    }
}
int main() {
  ios::sync_with_stdio(false);
  int zs;
  cin >> zs;
  while (zs--) {
    cin >> n >> k;
    for (int i = 1; i <= k; i++) {
      cin >> num[i];
      for (int j = 1; j <= num[i]; j++) cin >> ans[i][j];
    }
    int ma;
    print(1, n);
    cin >> ma;
    int l = 1, r = n;
    while (l < r) {
      int mid = (l + r) / 2;
      print(l, mid);
      int x;
      cin >> x;
      if (x == ma)
        r = mid;
      else
        l = mid + 1;
    }
    int t = ggg(l);
    int vis[1007] = {0};
    for (int i = 1; i <= num[t]; i++) vis[ans[t][i]] = 1;
    cout << "? " << n - num[t] << ' ';
    for (int i = 1; i <= n; i++)
      if (!vis[i]) cout << i << ' ';
    cout << endl;
    fflush(stdout);
    int se;
    cin >> se;
    cout << '!' << ' ';
    for (int i = 1; i <= k; i++)
      if (i == t)
        cout << se << ' ';
      else
        cout << ma << ' ';
    cout << endl;
    string s;
    cin >> s;
  }
}
