#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;
    
    
}
