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