#include <iostream>
struct A {
int x;
std::string name;
A(int v, std::string n):x(v), name(n) {};
void do_it() const { std::cout << name.c_str() << "\n"; }
};
bool operator<( A lhs, A rhs ) { return lhs.x < rhs.x; }
#include <algorithm>
int main() {
A a(5, "A");
A b(5, "B");
std::min( a, b ).do_it();
std::min( b, a ).do_it();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgpzdHJ1Y3QgQSB7CiAgICBpbnQgeDsKICAgIHN0ZDo6c3RyaW5nIG5hbWU7CiAgICBBKGludCB2LCBzdGQ6OnN0cmluZyBuKTp4KHYpLCBuYW1lKG4pIHt9OwogICAgdm9pZCBkb19pdCgpIGNvbnN0IHsgc3RkOjpjb3V0IDw8IG5hbWUuY19zdHIoKSA8PCAiXG4iOyB9Cn07CmJvb2wgb3BlcmF0b3I8KCBBIGxocywgQSByaHMgKSB7IHJldHVybiBsaHMueCA8IHJocy54OyB9CgojaW5jbHVkZSA8YWxnb3JpdGhtPgppbnQgbWFpbigpIHsKICAgIEEgYSg1LCAiQSIpOwogICAgQSBiKDUsICJCIik7CiAgICBzdGQ6Om1pbiggYSwgYiApLmRvX2l0KCk7CiAgICBzdGQ6Om1pbiggYiwgYSApLmRvX2l0KCk7Cn0=