struct O {
int o;
O *operator->() { return this; };
int operator-() { return -1; }
O &operator<<(O &o) { return o; }
O &operator>>(O &o) { return o; }
};
int main()
{
O o;
if (o->o<-o) o<<o>>o;
return 0;
}
c3RydWN0IE8gewogaW50IG87CiBPICpvcGVyYXRvci0+KCkgeyByZXR1cm4gdGhpczsgfTsKIGludCBvcGVyYXRvci0oKSB7IHJldHVybiAtMTsgfQogTyAmb3BlcmF0b3I8PChPICZvKSB7IHJldHVybiBvOyB9CiBPICZvcGVyYXRvcj4+KE8gJm8pIHsgcmV0dXJuIG87IH0KfTsKCmludCBtYWluKCkKewogTyBvOwogaWYgKG8tPm88LW8pIG88PG8+Pm87CgogcmV0dXJuIDA7Cn0=