#include <iostream>
#pragma GCC optimize("O3,unroll-loops")
#include <algorithm>
#include <cstring>
#include <climits>
#include <iomanip>
#include <numeric>
#include <bitset>
#include <string>
#include <vector>
#include <cmath>
#include <queue>
#include <deque>
#include <stack>
#include <list>
#include <map>
#include <set>
#define int long long
//#define int short
#define pb push_back
#define f first
#define s second
using namespace std;

#include "partition.h"

vector<int> solve(vector<int> v){
    map<int, int> M;
    int n = v.size();
    for (auto i : v){
        M[i]++;
    }
    bool t1 = true;
    for (auto i : M){
        if (i.s % 2 == 1){
            t1 = false;
        }
    }
    vector<int> rez;
    if (t1){
        for (int idk = 1; idk <= 2; idk++){
            for (auto i : M){
                for (int j = 1; j <= i.s / 2; j++){
                    rez.pb(i.f);
                }
            }
        }
    }
    return rez;
}


