#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> in_a = {1, 2, 2, 3};
std::vector<int> in_b = {2, 2, 4, 5};
std::vector<int> out_a;
std::vector<int> out_b;
std::set_union(in_a.begin(), in_a.end(), in_b.begin(), in_b.end(), std::back_inserter(out_a));
std::merge(in_a.begin(), in_a.end(), in_b.begin(), in_b.end(), std::back_inserter(out_b));
for (const auto& item : out_a)
{
std::cout << item << " ";
}
std::cout << std::endl;
for (const auto& item : out_b)
{
std::cout << item << " ";
}
std::cout << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKaW50IG1haW4oKQp7CglzdGQ6OnZlY3RvcjxpbnQ+IGluX2EgPSB7MSwgMiwgMiwgM307CglzdGQ6OnZlY3RvcjxpbnQ+IGluX2IgPSB7MiwgMiwgNCwgNX07CgkKCXN0ZDo6dmVjdG9yPGludD4gb3V0X2E7CglzdGQ6OnZlY3RvcjxpbnQ+IG91dF9iOwoJCglzdGQ6OnNldF91bmlvbihpbl9hLmJlZ2luKCksIGluX2EuZW5kKCksIGluX2IuYmVnaW4oKSwgaW5fYi5lbmQoKSwgc3RkOjpiYWNrX2luc2VydGVyKG91dF9hKSk7CglzdGQ6Om1lcmdlKGluX2EuYmVnaW4oKSwgaW5fYS5lbmQoKSwgaW5fYi5iZWdpbigpLCBpbl9iLmVuZCgpLCBzdGQ6OmJhY2tfaW5zZXJ0ZXIob3V0X2IpKTsKCQoJZm9yIChjb25zdCBhdXRvJiBpdGVtIDogb3V0X2EpCgl7CgkJc3RkOjpjb3V0IDw8IGl0ZW0gPDwgIiAiOwoJfQoJc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCQoJZm9yIChjb25zdCBhdXRvJiBpdGVtIDogb3V0X2IpCgl7CgkJc3RkOjpjb3V0IDw8IGl0ZW0gPDwgIiAiOwoJfQoJc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCQoJcmV0dXJuIDA7Cn0=