#include <iostream>
#include <iomanip>
using namespace std;
template<class T, int N>
int Val = 3;
template<>
int Val<int,0> = 5;
template<int N>
int Val<char,N> = N;
template<class T, int N>
class Test
{
public:
void method()
{
cout << Val<T,N> << endl;
}
};
int main(int argc, const char * argv[])
{
Test<int,0> t1;
t1.method();
Test<int,5> t2;
t2.method();
Test<char,7> t3;
t3.method();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZTxjbGFzcyBULCBpbnQgTj4KaW50IFZhbCA9IDM7Cgp0ZW1wbGF0ZTw+CmludCBWYWw8aW50LDA+ID0gNTsKCgp0ZW1wbGF0ZTxpbnQgTj4KaW50IFZhbDxjaGFyLE4+ID0gTjsKCgp0ZW1wbGF0ZTxjbGFzcyBULCBpbnQgTj4KY2xhc3MgVGVzdAp7CnB1YmxpYzoKICAgIHZvaWQgbWV0aG9kKCkKICAgIHsKICAgICAgICBjb3V0IDw8IFZhbDxULE4+IDw8IGVuZGw7CiAgICB9Cn07CgppbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqIGFyZ3ZbXSkKewogICAgVGVzdDxpbnQsMD4gdDE7CiAgICB0MS5tZXRob2QoKTsKICAgIFRlc3Q8aW50LDU+IHQyOwogICAgdDIubWV0aG9kKCk7CiAgICBUZXN0PGNoYXIsNz4gdDM7CiAgICB0My5tZXRob2QoKTsKfQoKCg==