#include <string>
#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;
template<typename BidirIt>
void rot(BidirIt first, BidirIt mid, BidirIt last)
{
reverse(first,last);
reverse(first,mid);
reverse(mid,last);
}
int main(int argc, const char * argv[])
{
string s = "abcdefghij";
rot(s.begin(),s.begin()+3,s.end());
cout << s << endl;
rotate(s.begin(),s.begin()+3,s.end());
cout << s << endl;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBCaWRpckl0Pgp2b2lkIHJvdChCaWRpckl0IGZpcnN0LCBCaWRpckl0IG1pZCwgQmlkaXJJdCBsYXN0KQp7CiAgICByZXZlcnNlKGZpcnN0LGxhc3QpOwogICAgcmV2ZXJzZShmaXJzdCxtaWQpOwogICAgcmV2ZXJzZShtaWQsbGFzdCk7Cn0KCgppbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqIGFyZ3ZbXSkKewogICAgc3RyaW5nIHMgPSAiYWJjZGVmZ2hpaiI7CiAgICByb3Qocy5iZWdpbigpLHMuYmVnaW4oKSszLHMuZW5kKCkpOwogICAgY291dCA8PCBzIDw8IGVuZGw7CiAgICByb3RhdGUocy5iZWdpbigpLHMuYmVnaW4oKSszLHMuZW5kKCkpOwogICAgY291dCA8PCBzIDw8IGVuZGw7CiAgICAKICAgIAp9Cg==