#include <algorithm>
#include <iostream>
#include <map>
#include <string>
typedef std::map<std::string, std::string(*)(std::string)> MyMap;
std::string forward(std::string s) { return s; }
std::string backward(std::string s) { std::reverse(s.begin(), s.end()); return s; }
MyMap Init()
{
MyMap map;
map["forward"] = &forward;
map["backward"] = &backward;
return map;
}
const MyMap Map = Init();
int main()
{
for (MyMap::const_iterator iter = Map.begin(); iter != Map.end(); iter++)
std::cout << (*iter->second)(iter->first) << "\n";;
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c3RyaW5nPgoKdHlwZWRlZiBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmcoKikoc3RkOjpzdHJpbmcpPiBNeU1hcDsKCnN0ZDo6c3RyaW5nIGZvcndhcmQoc3RkOjpzdHJpbmcgcykgeyByZXR1cm4gczsgfQpzdGQ6OnN0cmluZyBiYWNrd2FyZChzdGQ6OnN0cmluZyBzKSB7IHN0ZDo6cmV2ZXJzZShzLmJlZ2luKCksIHMuZW5kKCkpOyByZXR1cm4gczsgfQoKTXlNYXAgSW5pdCgpCnsKCU15TWFwIG1hcDsKCW1hcFsiZm9yd2FyZCJdID0gJmZvcndhcmQ7CgltYXBbImJhY2t3YXJkIl0gPSAmYmFja3dhcmQ7CglyZXR1cm4gbWFwOwp9Cgpjb25zdCBNeU1hcCBNYXAgPSBJbml0KCk7CgppbnQgbWFpbigpCnsKCWZvciAoTXlNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBNYXAuYmVnaW4oKTsgaXRlciAhPSBNYXAuZW5kKCk7IGl0ZXIrKykKCQlzdGQ6OmNvdXQgPDwgKCppdGVyLT5zZWNvbmQpKGl0ZXItPmZpcnN0KSA8PCAiXG4iOzsKCXJldHVybiAwOwp9