#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;
}