#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
const int maxn = 1e6 + 10;
const double eps = 1e-1;
const long long inf = 1e18;
int T;
int n, m, x, y;
vector<int> vec;
map<int, int> vis;
int main() {
  scanf("%d", &T);
  while (T--) {
    vec.clear();
    vis.clear();
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n; i++) {
      scanf("%d", &x);
      vec.push_back(x);
      vis[x] = 1;
    }
    sort(vec.begin(), vec.end());
    vec.erase(unique(vec.begin(), vec.end()), vec.end());
    if (vec.size() > m) {
      printf("-1\n");
      continue;
    }
    int pos = 1;
    for (int i = vec.size() + 1; i <= m; i++) {
      while (vis[pos]) pos++;
      vec.push_back(pos);
    }
    sort(vec.begin(), vec.end());
    printf("%d\n", n * m);
    for (int i = 1; i <= n; i++) {
      for (int j = 0; j < m; j++) {
        printf("%d ", vec[j]);
      }
    }
    printf("\n");
  }
  return 0;
}
