#include <iostream>
#include <array>
 
// class base {
// public:
// 	virtual static constexpr size_t nums() = 0
// }
 
template<size_t num>
class derived1 {//: public base {
public:
	static constexpr size_t nums() {return num;}
	derived1()  {}
};
 
template<size_t num>
class derived2 {// : public base {
public:
	static constexpr size_t nums() {return num;}
	derived2()  {}
};
 
int main() {
 
	std::cout << derived2<20>::nums() << "\n";
	return 0;
}
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YXJyYXk+CgovLyBjbGFzcyBiYXNlIHsKLy8gcHVibGljOgovLyAJdmlydHVhbCBzdGF0aWMgY29uc3RleHByIHNpemVfdCBudW1zKCkgPSAwCi8vIH0KCnRlbXBsYXRlPHNpemVfdCBudW0+CmNsYXNzIGRlcml2ZWQxIHsvLzogcHVibGljIGJhc2UgewpwdWJsaWM6CglzdGF0aWMgY29uc3RleHByIHNpemVfdCBudW1zKCkge3JldHVybiBudW07fQoJZGVyaXZlZDEoKSAge30KfTsKCnRlbXBsYXRlPHNpemVfdCBudW0+CmNsYXNzIGRlcml2ZWQyIHsvLyA6IHB1YmxpYyBiYXNlIHsKcHVibGljOgoJc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbnVtcygpIHtyZXR1cm4gbnVtO30KCWRlcml2ZWQyKCkgIHt9Cn07CgppbnQgbWFpbigpIHsKCglzdGQ6OmNvdXQgPDwgZGVyaXZlZDI8MjA+OjpudW1zKCkgPDwgIlxuIjsKCXJldHVybiAwOwp9