class B {
public:
int value;
B(int value) : value(value) {}
};
class A {
public:
int value;
A(int value) : value(value) {}
operator B() {
return B(value);
}
};
B operator+(B lhs, B rhs) {
return B(lhs.value + rhs.value);
}
int main() {
A a(3);
B b(4);
B c = a + b;
return 0;
}
Y2xhc3MgQiB7CnB1YmxpYzoKICAgIGludCB2YWx1ZTsKICAgIEIoaW50IHZhbHVlKSA6IHZhbHVlKHZhbHVlKSB7fQp9OwoKY2xhc3MgQSB7CnB1YmxpYzoKICAgIGludCB2YWx1ZTsKICAgIEEoaW50IHZhbHVlKSA6IHZhbHVlKHZhbHVlKSB7fQogICAgCiAgICBvcGVyYXRvciBCKCkgewogICAgICAgIHJldHVybiBCKHZhbHVlKTsKICAgIH0KfTsKCkIgb3BlcmF0b3IrKEIgbGhzLCBCIHJocykgewogICAgcmV0dXJuIEIobGhzLnZhbHVlICsgcmhzLnZhbHVlKTsKfQoKaW50IG1haW4oKSB7CgogICAgQSBhKDMpOwogICAgQiBiKDQpOwoKICAgIEIgYyA9IGEgKyBiOwoKICAgIHJldHVybiAwOwp9