#include <iostream>
using namespace std;


template <int N> struct Silnia{
	enum {value = N * Silnia < N -1>::value };
}; 

template <> struct Silnia<0>{
	enum {value = 1 };
};

int main() {

	cout<< Silnia<4>::value <<endl;
	return 0;
}