#include <iostream>
#include <vector>
using namespace std;
unsigned long long fib(int n, vector <unsigned long long> &v)
{
if (v.size() <= n)
v.resize(n + 1);
if (v[n])
return v[n];
return v[n] = n <= 2 ? 1 : fib(n - 1, v) + fib(n - 2, v);
}
int main()
{
vector <unsigned long long> v;
cout << fib(12, v) << endl;
for (int q=1; q<=94; ++q)
cout << q << ' ' << fib(q, v) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnVuc2lnbmVkIGxvbmcgbG9uZyBmaWIoaW50IG4sIHZlY3RvciA8dW5zaWduZWQgbG9uZyBsb25nPiAmdikKewogIGlmICh2LnNpemUoKSA8PSBuKQogICAgdi5yZXNpemUobiArIDEpOwoKICBpZiAodltuXSkKICAgIHJldHVybiB2W25dOwoKICByZXR1cm4gdltuXSA9IG4gPD0gMiA/IDEgOiBmaWIobiAtIDEsIHYpICsgZmliKG4gLSAyLCB2KTsKfQoKaW50IG1haW4oKQp7CiAgdmVjdG9yIDx1bnNpZ25lZCBsb25nIGxvbmc+IHY7CgogIGNvdXQgPDwgZmliKDEyLCB2KSA8PCBlbmRsOwoKICBmb3IgKGludCBxPTE7IHE8PTk0OyArK3EpCiAgICBjb3V0IDw8IHEgPDwgJyAnIDw8IGZpYihxLCB2KSA8PCBlbmRsOwogICAgCiAgcmV0dXJuIDA7Cn0=