#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")
#pragma GCC optimization("O3")
#pragma GCC optimization("unroll-loops")
const int MAXN = 1e4 + 7;
const int MOD = 1e9 + 7;
const unsigned long long BASE = 311;
const long double EPS = 1e-9;
const int INF = ((1 << 30) - 1);
const long long INFLL = ((1ll << 62ll) - 1ll);
const long long oo = 2e18;
long long ar[MAXN], cnt[MAXN];
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  long long T;
  cin >> T;
  while (T--) {
    long long N, K;
    cin >> N >> K;
    long long cnte = 0;
    vector<long long> v;
    for (long long i = 1; i <= N; ++i) {
      cin >> ar[i];
      cnt[ar[i]]++;
      if (cnt[ar[i]] == 1) {
        v.push_back(ar[i]);
        cnte++;
      }
    }
    if (cnte > K) {
      cout << -1;
      cout << "\n";
      v.clear();
      for (long long i = 1; i <= N; i++) {
        cnt[i] = 0;
      }
      continue;
    }
    for (long long i = 1; i <= 100; i++) {
      if ((long long)(v.size()) == K) break;
      if (!cnt[i]) v.push_back(i);
    }
    cout << N * (long long)(v.size());
    cout << "\n";
    for (long long i = 1; i <= N; i++) {
      for (auto it : v) {
        cout << it << " ";
      }
    }
    cout << "\n";
    v.clear();
    for (long long i = 1; i <= N; i++) {
      cnt[i] = 0;
    }
  }
  return 0;
}
