#include <iostream>
#include <set>
#include <vector>
#include <string>
#include <algorithm>
#include <iterator>
#include <map>
#include <utility>
#include <list>
#include <climits>
#include <bitset>
#include <numeric>

using namespace std;

#define rep(i, n) for(int i = 0; i < n; i++)
#define repi(i, n) for(auto i = (n).begin(); i != (n).end(); i++)
#define in_arr(type, a, n) copy_n(istream_iterator<type>(cin), n, (a).begin());
#define ll long long int

int main(){
    int n, m;
    cin >> n >> m;
    set<int> a, o, s, t;
    
    rep(i, n){
        int l;
        cin >> l;
        t.insert(l);
        o.insert(l);
    }
    
    rep(i, m){
        int l;
        cin >> l;
        s.insert(l);
        o.insert(l);
    }
    
    repi(i, s){
        if(t.find(*i) != t.end()){
            a.insert(*i);
        }
    }
    cout << a.size() << " " << o.size() << endl;
    repi(i, a){
        cout << *i << endl;
    }
    repi(i, o){
        cout << *i << endl;
    }
    
    return 0;
}

