#include <iostream>
template<unsigned long long T>
struct myFunc {
enum moo : unsigned long long {
value = myFunc<T-2>::value + myFunc<T-1>::value
};
};
template<>
struct myFunc<2> {
enum moo : unsigned long long {
value = 1
};
};
template<>
struct myFunc<1> {
enum moo : unsigned long long {
value = 1
};
};
template<>
struct myFunc<0> {
enum moo : unsigned long long {
value = 0
};
};
template<unsigned long long i>
struct fibonacci {
static void loop() {
std::cout << myFunc<i>::value << "\n";
fibonacci<i-1>::loop();
}
};
template<>
struct fibonacci<0> {
static void loop() {
std::cout << myFunc<0>::value << "\n";
}
};
int main() {
fibonacci<92>::loop();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCnRlbXBsYXRlPHVuc2lnbmVkIGxvbmcgbG9uZyBUPgpzdHJ1Y3QgbXlGdW5jIHsKICAgIGVudW0gbW9vIDogdW5zaWduZWQgbG9uZyBsb25nIHsKICAgICAgICB2YWx1ZSA9IG15RnVuYzxULTI+Ojp2YWx1ZSArIG15RnVuYzxULTE+Ojp2YWx1ZQogICAgfTsKfTsKIAp0ZW1wbGF0ZTw+CnN0cnVjdCBteUZ1bmM8Mj4gewogICAgZW51bSBtb28gOiB1bnNpZ25lZCBsb25nIGxvbmcgewogICAgICAgIHZhbHVlID0gMQogICAgfTsKfTsKIAp0ZW1wbGF0ZTw+CnN0cnVjdCBteUZ1bmM8MT4gewogICAgZW51bSBtb28gOiB1bnNpZ25lZCBsb25nIGxvbmcgewogICAgICAgIHZhbHVlID0gMQogICAgfTsKfTsKIAp0ZW1wbGF0ZTw+CnN0cnVjdCBteUZ1bmM8MD4gewogICAgZW51bSBtb28gOiB1bnNpZ25lZCBsb25nIGxvbmcgewogICAgICAgIHZhbHVlID0gMAogICAgfTsKfTsKIAp0ZW1wbGF0ZTx1bnNpZ25lZCBsb25nIGxvbmcgaT4Kc3RydWN0IGZpYm9uYWNjaSB7CiAgICBzdGF0aWMgdm9pZCBsb29wKCkgewogICAgICAgIHN0ZDo6Y291dCA8PCBteUZ1bmM8aT46OnZhbHVlIDw8ICJcbiI7CiAgICAgICAgZmlib25hY2NpPGktMT46Omxvb3AoKTsKICAgIH0KfTsKIAp0ZW1wbGF0ZTw+CnN0cnVjdCBmaWJvbmFjY2k8MD4gewogICAgc3RhdGljIHZvaWQgbG9vcCgpIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgbXlGdW5jPDA+Ojp2YWx1ZSA8PCAiXG4iOwogICAgfQp9OwogCmludCBtYWluKCkgewogICAgZmlib25hY2NpPDkyPjo6bG9vcCgpOwp9