#include <bits/stdc++.h>
#define rep(i,n) for (int i = 0; i < (n); i++)
using namespace std;
using ll = long long;
using P = pair<int, int>;


int main() {
    int n, m;
    cin >> n >> m;
    vector<int> a(n), b(m);
    rep(i, n) cin >> a[i];
    rep(i, m) cin >> b[i];
    set<int> ans;
    set<int> setA;
    rep(i, n) setA.insert(a[i]);
    rep(i, m) {
        auto it = setA.find(b[i]);
        if (it == setA.end()) {
            ans.insert(b[i]);
        }
    }
    set<int> setB;
    rep(i, m) setB.insert(b[i]);
    rep(i, n) {
        auto it = setB.find(a[i]);
        if (it == setB.end()) {
            ans.insert(a[i]);
        }
    }
    for (int v : ans) {
        cout << v << " ";
    }
    cout << endl;

    return 0;
}
// C++(GCC 9.2.1)
#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
#define repex(i, a, b, c) for(int i = a; i < b; i += c)
#define repx(i, a, b) repex(i, a, b, 1)
#define rep(i, n) repx(i, 0, n)
#define repr(i, a, b) for(int i = a; i >= b; i--)
#define pb push_back
int a[1010], b[1010];

int main(){
    
    // 1. 入力情報.
    int N, M;
    scanf("%d %d", &N, &M);
    rep(i, N){
        int x;
        scanf("%d", &x);
        a[x]++;
    }
    rep(i, M){
        int y;
        scanf("%d", &y);
        b[y]++;
    }
    
    // 2. A, B のどちらか片方にだけ出現する整数は？
    vi ans;
    rep(i, 1010) if((a[i] && !b[i]) || (!a[i] && b[i])) ans.pb(i);
    
    // 3. 出力.
    int l = ans.size();
    rep(i, l){
        printf("%d", ans[i]);
        printf("%s", (i < l - 1) ? " " : "\n");
    }
    return 0;
    
}