#include <iostream>
using namespace std;
template<int x>
class A { public: int eval(){ return x; }; };
template<int x, int y, int z>
class B { public: int eval(){ return x+y+z; }; };
template<int... Args1, int... Args2, template <int...> class T1, template <int...> class T2>
int operator+(T1<Args1...> a, T2<Args2...> b)
{
return a.eval() + b.eval();
}
int main() {
A<1> a;
B<2,3,4> b;
cout << a+b << endl;
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8aW50IHg+CmNsYXNzIEEgeyBwdWJsaWM6IGludCBldmFsKCl7IHJldHVybiB4OyB9OyB9OwoKdGVtcGxhdGU8aW50IHgsIGludCB5LCBpbnQgej4KY2xhc3MgQiB7IHB1YmxpYzogaW50IGV2YWwoKXsgcmV0dXJuIHgreSt6OyB9OyB9OwoKdGVtcGxhdGU8aW50Li4uIEFyZ3MxLCBpbnQuLi4gQXJnczIsIHRlbXBsYXRlIDxpbnQuLi4+IGNsYXNzIFQxLCB0ZW1wbGF0ZSA8aW50Li4uPiBjbGFzcyBUMj4gCmludCBvcGVyYXRvcisoVDE8QXJnczEuLi4+IGEsIFQyPEFyZ3MyLi4uPiBiKSAKewogICAgcmV0dXJuIGEuZXZhbCgpICsgYi5ldmFsKCk7Cn0KCmludCBtYWluKCkgewoJQTwxPiBhOwoJQjwyLDMsND4gYjsKCWNvdXQgPDwgYStiIDw8IGVuZGw7CgkKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXJldHVybiAwOwp9