struct A {
int a;
bool operator>(const int& inty) { return a > inty; }
};
template <class A, class B> auto operator<(const A& c, const B& b) -> decltype(c>b) { return c < b; }
int main(void) {
A a;
a.a = 1;
int b = 2;
if (a < b) std::cout << "hi";
return 0;
}
c3RydWN0IEEgewogIGludCBhOwogIGJvb2wgb3BlcmF0b3I+KGNvbnN0IGludCYgaW50eSkgeyByZXR1cm4gYSA+IGludHk7IH0KfTsKCnRlbXBsYXRlIDxjbGFzcyBBLCBjbGFzcyBCPiBhdXRvIG9wZXJhdG9yPChjb25zdCBBJiBjLCBjb25zdCBCJiBiKSAtPiBkZWNsdHlwZShjPmIpIHsgcmV0dXJuIGMgPCBiOyB9CgppbnQgbWFpbih2b2lkKSB7CiAgQSBhOwogIGEuYSA9IDE7CiAgaW50IGIgPSAyOwogIGlmIChhIDwgYikgc3RkOjpjb3V0IDw8ICJoaSI7CiAgcmV0dXJuIDA7Cn0=