#include <iostream>
#include <iterator>
#include <algorithm>
#include <functional>
template<typename ForwardIterator>
ForwardIterator nonunique(ForwardIterator first, ForwardIterator const last) {
using namespace std::placeholders;
using value_type = typename std::iterator_traits<ForwardIterator>::value_type;
auto result = first;
while (first != last) {
auto const afterFirst = std::next(first);
auto const notEqualTo = std::bind(std::not_equal_to<value_type>(), _1, std::cref(*first));
auto const localLast = std::find_if(afterFirst, last, notEqualTo);
if (localLast != afterFirst) {
*result++ = *first;
first = localLast;
} else {
++first;
}
}
return result;
}
int main() {
std::vector<int> sequence(std::istream_iterator<int>{std::cin}, std::istream_iterator<int>{});
std::sort(std::begin(sequence), std::end(sequence));
auto const last = nonunique(std::begin(sequence), std::end(sequence));
if (last != std::begin(sequence)) {
std::copy(std::begin(sequence), last, std::ostream_iterator<int>{std::cout, "\t"});
std::cout << std::endl;
} else {
std::cout << "all elements are unique" << std::endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxmdW5jdGlvbmFsPgoKCnRlbXBsYXRlPHR5cGVuYW1lIEZvcndhcmRJdGVyYXRvcj4KRm9yd2FyZEl0ZXJhdG9yIG5vbnVuaXF1ZShGb3J3YXJkSXRlcmF0b3IgZmlyc3QsIEZvcndhcmRJdGVyYXRvciBjb25zdCBsYXN0KSB7CiAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ6OnBsYWNlaG9sZGVyczsKCQogICB1c2luZyB2YWx1ZV90eXBlID0gdHlwZW5hbWUgc3RkOjppdGVyYXRvcl90cmFpdHM8Rm9yd2FyZEl0ZXJhdG9yPjo6dmFsdWVfdHlwZTsKCQogICBhdXRvIHJlc3VsdCA9IGZpcnN0OwogICB3aGlsZSAoZmlyc3QgIT0gbGFzdCkgewogICAJICBhdXRvIGNvbnN0IGFmdGVyRmlyc3QgPSBzdGQ6Om5leHQoZmlyc3QpOwogICAJICBhdXRvIGNvbnN0IG5vdEVxdWFsVG8gPSBzdGQ6OmJpbmQoc3RkOjpub3RfZXF1YWxfdG88dmFsdWVfdHlwZT4oKSwgXzEsIHN0ZDo6Y3JlZigqZmlyc3QpKTsKICAgICAgYXV0byBjb25zdCBsb2NhbExhc3QgID0gc3RkOjpmaW5kX2lmKGFmdGVyRmlyc3QsIGxhc3QsIG5vdEVxdWFsVG8pOwogICAgICAKICAgICAgaWYgKGxvY2FsTGFzdCAhPSBhZnRlckZpcnN0KSB7CiAgICAgICAgICpyZXN1bHQrKyA9ICpmaXJzdDsKICAgICAgICAgZmlyc3QgPSBsb2NhbExhc3Q7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgICsrZmlyc3Q7CiAgICAgIH0KICAgfQogICAKICAgcmV0dXJuIHJlc3VsdDsKfQoKCmludCBtYWluKCkgewoJc3RkOjp2ZWN0b3I8aW50PiBzZXF1ZW5jZShzdGQ6OmlzdHJlYW1faXRlcmF0b3I8aW50PntzdGQ6OmNpbn0sIHN0ZDo6aXN0cmVhbV9pdGVyYXRvcjxpbnQ+e30pOwoJCglzdGQ6OnNvcnQoc3RkOjpiZWdpbihzZXF1ZW5jZSksIHN0ZDo6ZW5kKHNlcXVlbmNlKSk7CglhdXRvIGNvbnN0IGxhc3QgPSBub251bmlxdWUoc3RkOjpiZWdpbihzZXF1ZW5jZSksIHN0ZDo6ZW5kKHNlcXVlbmNlKSk7CgkKCWlmIChsYXN0ICE9IHN0ZDo6YmVnaW4oc2VxdWVuY2UpKSB7CgkgICBzdGQ6OmNvcHkoc3RkOjpiZWdpbihzZXF1ZW5jZSksIGxhc3QsIHN0ZDo6b3N0cmVhbV9pdGVyYXRvcjxpbnQ+e3N0ZDo6Y291dCwgIlx0In0pOwoJICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCX0gZWxzZSB7CgkgICBzdGQ6OmNvdXQgPDwgImFsbCBlbGVtZW50cyBhcmUgdW5pcXVlIiA8PCBzdGQ6OmVuZGw7Cgl9Cn0=