#include <iostream>
#include <iterator>
#include <algorithm>
#include <vector>
#include <cassert>
template<typename C>
C operator ~(C c) {
assert(!c.empty());
typename C::iterator b = c.begin();
std::rotate(c.begin(), ++b, c.end());
return c;
}
int main() {
std::vector<int> v;
v.push_back(2);
v.push_back(4);
v.push_back(7);
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
v = ~v;
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxjYXNzZXJ0PgoKCnRlbXBsYXRlPHR5cGVuYW1lIEM+CkMgb3BlcmF0b3IgfihDIGMpIHsKICAgIGFzc2VydCghYy5lbXB0eSgpKTsKICAgIHR5cGVuYW1lIEM6Oml0ZXJhdG9yIGIgPSBjLmJlZ2luKCk7CiAgICBzdGQ6OnJvdGF0ZShjLmJlZ2luKCksICsrYiwgYy5lbmQoKSk7CiAgICByZXR1cm4gYzsKfQoKCmludCBtYWluKCkgewogICAgc3RkOjp2ZWN0b3I8aW50PiB2OwogICAgCiAgICB2LnB1c2hfYmFjaygyKTsKICAgIHYucHVzaF9iYWNrKDQpOwogICAgdi5wdXNoX2JhY2soNyk7CiAgICAKICAgIHN0ZDo6Y29weSh2LmJlZ2luKCksIHYuZW5kKCksIHN0ZDo6b3N0cmVhbV9pdGVyYXRvcjxpbnQ+KHN0ZDo6Y291dCwgIiAiKSk7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOwogICAgCiAgICB2ID0gfnY7CiAgICAKICAgIHN0ZDo6Y29weSh2LmJlZ2luKCksIHYuZW5kKCksIHN0ZDo6b3N0cmVhbV9pdGVyYXRvcjxpbnQ+KHN0ZDo6Y291dCwgIiAiKSk7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOwp9Cg==