#include #include typedef unsigned long long ll; const int maxn = 205; const ll mod = 10000000000000000ll; int n; struct high_precision { ll num[10]; int dig; high_precision() { memset(num, 0, sizeof num); dig = 0; } void operator=(int b) { dig = 1; num[0] = b; } high_precision operator+(high_precision b) { high_precision c = *this; for (int i = 0; i < b.dig; i++) { c.num[i] += b.num[i]; if (c.num[i] >= mod) { int jw = c.num[i] / mod; c.num[i] %= mod; c.num[i + 1] += jw; if (i + 1 == c.dig) c.dig++; } } return c; } void print() { printf("%I64u", num[dig - 1]); for (int i = dig - 2; i >= 0; i--) printf("%016I64u", num[i]); printf("\n"); } }; high_precision f[maxn]; int main() { f[0] = 1; f[1] = 1; for (int i = 2; i <= 200; i++) f[i] = f[i - 1] + f[i - 2]; while (scanf("%d", &n) == 1) f[n].print(); return 0; }