#include <bits/stdc++.h>   using namespace std;   const int MOD = 1e9 + 7;   const int INF = INT_MAX;   const int MAX = 4e6 + 5;   const int N = 1e5 + 5;   long long dx[] = {-1, 0, 1, 0, -1, -1, 1, 1};   long long dy[] = {0, 1, 0, -1, -1, 1, 1, -1};   char dir[] = { U ,  R ,  D ,  L };   long long power(long long a, long long b);   long long powmod(long long a, long long b, long long mod);   int32_t main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     long long t;     cin >> t;     while (t--) {       long long n, k;       cin >> n >> k;       long long a[n];       set<long long> s;       for (long long i = 0; i < n; i++) {         cin >> a[i];         s.insert(a[i]);       }       if (s.size() > k)         cout << -1 <<   n ;       else if (n == k) {         cout << k <<   n ;         for (long long i = 0; i < n; i++) cout << a[i] <<    ;         cout <<   n ;       } else {         vector<long long> tmp, res;         for (auto x : s) tmp.push_back(x);         long long m = tmp.size();         if (m < k) {           for (long long i = 0; i < k - m; i++) {             tmp.push_back(tmp[m - 1]);           }         }         m = tmp.size();         long long i = 0, j = 0;         while (i < n && j % m < m) {           if (a[i] == tmp[j % m]) {             res.push_back(a[i]);             i += 1;             j += 1;           } else {             res.push_back(tmp[j % m]);             j += 1;           }         }         cout << res.size() <<   n ;         for (auto x : res) cout << x <<    ;         cout <<   n ;       }     }   }   long long power(long long a, long long b) {     long long res = 1;     while (b > 0) {       if (b % 2) res *= a;       b /= 2, a *= a;     }     return res;   }   long long powmod(long long a, long long b, long long mod) {     long long res = 1;     while (b > 0) {       if (b % 2) res *= (a % mod);       b /= 2, a *= (a % mod);     }     return res % mod;   }   