#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define fast std::ios::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL)
#define ll long long
#define test cout<<"archit\n"
#define debug(x) cout<<x<<" "
#define debug1(x) cout<<x<<"\n"
#define debug2(x,y) cout<<x<<" "<<y<<"\n"
#define pb push_back
#define pi pair<int,int>
#define fi first
#define si second
#define mod (ll)1000000007
#define mxn 1000005
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
using namespace std;
using namespace __gnu_pbds;
int main()
{
int n,x; cin>>n;
vector<int>v(n);
unordered_map<int, int>mp1;
unordered_map<int, int>mp2;
for(int i=1;i<=n;i++){
cin>>v[i];
mp1[v[i]]+=1;
}
for(int i=1;i<=n;i++){
cin>>x;
mp2[x]+=1;
}
sort(v.begin(), v.end());
vector<int>ans;
for(int i=0;i<n;i++){
int mine = min(mp1[v[i]], mp2[v[i]]);
for(int j=1;j<=mine;j++){
ans.pb(v[i]);
}
mp1[v[i]] = 0;
}
for(int i=0;i<ans.size();i++){
if(i!=(ans.size()-1)){
cout<<ans[i]<<", ";
}
else{
cout<<ans[i];
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgojaW5jbHVkZSA8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KI2RlZmluZSBmYXN0IHN0ZDo6aW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZShOVUxMKTtjb3V0LnRpZShOVUxMKQojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHRlc3QgY291dDw8ImFyY2hpdFxuIgojZGVmaW5lIGRlYnVnKHgpIGNvdXQ8PHg8PCIgIgojZGVmaW5lIGRlYnVnMSh4KSBjb3V0PDx4PDwiXG4iCiNkZWZpbmUgZGVidWcyKHgseSkgY291dDw8eDw8IiAiPDx5PDwiXG4iCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcGkgcGFpcjxpbnQsaW50PgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2kgc2Vjb25kCiNkZWZpbmUgbW9kIChsbCkxMDAwMDAwMDA3CiNkZWZpbmUgbXhuIDEwMDAwMDUKI2RlZmluZSBvcmRlcmVkX3NldCB0cmVlPGludCwgbnVsbF90eXBlLGxlc3M8aW50PiwgcmJfdHJlZV90YWcsdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBuYW1lc3BhY2UgX19nbnVfcGJkczsKaW50IG1haW4oKQp7CiAgICBpbnQgbix4OyBjaW4+Pm47CiAgICB2ZWN0b3I8aW50PnYobik7CiAgICB1bm9yZGVyZWRfbWFwPGludCwgaW50Pm1wMTsKICAgIHVub3JkZXJlZF9tYXA8aW50LCBpbnQ+bXAyOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIGNpbj4+dltpXTsKICAgICAgICBtcDFbdltpXV0rPTE7CiAgICB9CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKyl7CiAgICAgICAgY2luPj54OwogICAgICAgIG1wMlt4XSs9MTsKICAgIH0KICAgIHNvcnQodi5iZWdpbigpLCB2LmVuZCgpKTsKICAgIHZlY3RvcjxpbnQ+YW5zOwogICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgaW50IG1pbmUgPSBtaW4obXAxW3ZbaV1dLCBtcDJbdltpXV0pOwogICAgICAgIGZvcihpbnQgaj0xO2o8PW1pbmU7aisrKXsKICAgICAgICAgICAgYW5zLnBiKHZbaV0pOwogICAgICAgIH0KICAgICAgICBtcDFbdltpXV0gPSAwOwogICAgfQogICAgZm9yKGludCBpPTA7aTxhbnMuc2l6ZSgpO2krKyl7CiAgICAgICAgaWYoaSE9KGFucy5zaXplKCktMSkpewogICAgICAgICAgICBjb3V0PDxhbnNbaV08PCIsICI7CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgIGNvdXQ8PGFuc1tpXTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQo=