#include <iostream>
template<std::size_t N>
struct factorial {
static const int value = factorial<N-1>::value * N;
};
template<>
struct factorial<0> {
static const int value = 1;
};
int main() {
std::cout << factorial<5>::value << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGU8c3RkOjpzaXplX3QgTj4Kc3RydWN0IGZhY3RvcmlhbCB7CiAgc3RhdGljIGNvbnN0IGludCB2YWx1ZSA9IGZhY3RvcmlhbDxOLTE+Ojp2YWx1ZSAqIE47Cn07Cgp0ZW1wbGF0ZTw+CnN0cnVjdCBmYWN0b3JpYWw8MD4gewogIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAxOwp9OwoKaW50IG1haW4oKSB7CiAgc3RkOjpjb3V0IDw8IGZhY3RvcmlhbDw1Pjo6dmFsdWUgPDwgc3RkOjplbmRsOwp9