#include <iostream>
#include <vector>
using namespace std;
template<unsigned int N>
class Factorial
{
public:
static const int value = Factorial<N-1>::value*N;
};
template<>
class Factorial<0>
{
public:
static const int value = 1;
};
int main()
{
cout << Factorial<5>::value << endl;
vector<int> v;
v.push_back(Factorial<6>::value);
cout << v[0] << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKdGVtcGxhdGU8dW5zaWduZWQgaW50IE4+CmNsYXNzIEZhY3RvcmlhbAp7CnB1YmxpYzoKICAgIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSBGYWN0b3JpYWw8Ti0xPjo6dmFsdWUqTjsKfTsKIAp0ZW1wbGF0ZTw+CmNsYXNzIEZhY3RvcmlhbDwwPgp7CnB1YmxpYzoKICAgIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSAxOwp9OwogCiAKaW50IG1haW4oKQp7CiAgICBjb3V0IDw8IEZhY3RvcmlhbDw1Pjo6dmFsdWUgPDwgZW5kbDsKICAgIHZlY3RvcjxpbnQ+IHY7CiAgICB2LnB1c2hfYmFjayhGYWN0b3JpYWw8Nj46OnZhbHVlKTsKICAgIGNvdXQgPDwgdlswXSA8PCBlbmRsOwp9Cg==