#include #include #include #include #include #include using namespace std; #define INF 0x3f3f3f3f #define eps 1e-8 typedef long long LL; class Bign { public: int len, s[200]; Bign() { memset(s,0,sizeof(s)); len = 1; } string str() const { string res = ""; for (int i = 1; i <= len; i++) res = (char)(s[i]+'0') + res; if (res == "") res = "0"; return res; } Bign operator = (const int &n) { memset(s, 0, sizeof(s)); int k = n; len = 0; while (k) { len++; s[len] = k % 10; k /= 10; } if (!len) len++; return *this; } Bign (const string n) {*this = n;} Bign (const int n) {*this = n;} Bign operator + (const Bign &a) const { Bign c; c.len = max(len, a.len) + 1; for (int i = 1, g = 0; i <= c.len; i++) { int x = s[i] + a.s[i] + g; c.s[i] = x % 10; g = x / 10; } while (!c.s[c.len] && c.len > 1) c.len--; return c; } Bign operator += (const Bign &a) { *this = *this + a; return *this; } }; istream& operator >> (istream &in, Bign &x) { string s; in >> s; x = s; return in; } ostream& operator << (ostream &out, const Bign &x) { out << x.str(); return out; } Bign f[205]; int n; int main() { memset(f, 0, sizeof(f)); f[0] = f[1] = 1; for (int i = 2; i <= 200; i++) f[i] = f[i-1] + f[i-2]; while (scanf("%d", &n) != EOF) cout << f[n] << "\n"; return 0; }