#include <string>
#include <map>
#include <unordered_map>
using namespace std;
namespace std
{
template <>
struct hash<const string>
{
typedef size_t result_type;
typedef const string argument_type;
size_t operator () (const string& k) const
{
return hash<string>()(k);
}
};
}
int main(void)
{
unordered_map<const string, int> m1;
unordered_map<const string, int, hash<string>> m2;
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbmFtZXNwYWNlIHN0ZAp7CnRlbXBsYXRlIDw+CnN0cnVjdCBoYXNoPGNvbnN0IHN0cmluZz4KewogIHR5cGVkZWYgc2l6ZV90IHJlc3VsdF90eXBlOwogIHR5cGVkZWYgY29uc3Qgc3RyaW5nIGFyZ3VtZW50X3R5cGU7CgogIHNpemVfdCBvcGVyYXRvciAoKSAoY29uc3Qgc3RyaW5nJiBrKSBjb25zdAogIHsKICAgIHJldHVybiBoYXNoPHN0cmluZz4oKShrKTsKICB9Cn07Cgp9CgppbnQgbWFpbih2b2lkKQp7CiAgdW5vcmRlcmVkX21hcDxjb25zdCBzdHJpbmcsIGludD4gbTE7CiAgdW5vcmRlcmVkX21hcDxjb25zdCBzdHJpbmcsIGludCwgaGFzaDxzdHJpbmc+PiBtMjsKCiAgcmV0dXJuIDA7Cn0K