#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
#include <iterator>
int main() {
// Create string streams with same text as respective file.
std::istringstream fr1{"1\n2\n3\n4\n5\n6\n7"};
std::istringstream fr2{"1\n3\n6\n8\n10"};
// Read number tokens into vector from both files.
std::vector<int> v{std::istream_iterator<int>{fr1}, std::istream_iterator<int>{}};
v.insert(std::begin(v), std::istream_iterator<int>{fr2}, std::istream_iterator<int>{});
// Sort the vector.
std::sort(std::begin(v), std::end(v));
// Remove consecutive duplicates (move them to back of vector).
auto end = std::unique(std::begin(v), std::end(v));
// Remove duplicate elements.
if (end != std::end(v)) {
v.erase(end, std::end(v));
}
// Output vector.
for (int i : v) {
std::cout << i << std::endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgoKaW50IG1haW4oKSB7CgkvLyBDcmVhdGUgc3RyaW5nIHN0cmVhbXMgd2l0aCBzYW1lIHRleHQgYXMgcmVzcGVjdGl2ZSBmaWxlLgogICAgc3RkOjppc3RyaW5nc3RyZWFtIGZyMXsiMVxuMlxuM1xuNFxuNVxuNlxuNyJ9OwogICAgc3RkOjppc3RyaW5nc3RyZWFtIGZyMnsiMVxuM1xuNlxuOFxuMTAifTsKCiAgICAvLyBSZWFkIG51bWJlciB0b2tlbnMgaW50byB2ZWN0b3IgZnJvbSBib3RoIGZpbGVzLgogICAgc3RkOjp2ZWN0b3I8aW50PiB2e3N0ZDo6aXN0cmVhbV9pdGVyYXRvcjxpbnQ+e2ZyMX0sIHN0ZDo6aXN0cmVhbV9pdGVyYXRvcjxpbnQ+e319OwogICAgdi5pbnNlcnQoc3RkOjpiZWdpbih2KSwgc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGludD57ZnIyfSwgc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGludD57fSk7CgogICAgLy8gU29ydCB0aGUgdmVjdG9yLgogICAgc3RkOjpzb3J0KHN0ZDo6YmVnaW4odiksIHN0ZDo6ZW5kKHYpKTsKCiAgICAvLyBSZW1vdmUgY29uc2VjdXRpdmUgZHVwbGljYXRlcyAobW92ZSB0aGVtIHRvIGJhY2sgb2YgdmVjdG9yKS4KICAgIGF1dG8gZW5kID0gc3RkOjp1bmlxdWUoc3RkOjpiZWdpbih2KSwgc3RkOjplbmQodikpOwoKICAgIC8vIFJlbW92ZSBkdXBsaWNhdGUgZWxlbWVudHMuCiAgICBpZiAoZW5kICE9IHN0ZDo6ZW5kKHYpKSB7CiAgICAgICAgdi5lcmFzZShlbmQsIHN0ZDo6ZW5kKHYpKTsKICAgIH0KCiAgICAvLyBPdXRwdXQgdmVjdG9yLgogICAgZm9yIChpbnQgaSA6IHYpIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgaSA8PCBzdGQ6OmVuZGw7CiAgICB9Cn0=