#include using namespace std; #define llong long long int #define ldouble long double #define fore(i, x) for (auto &i : n) #define rep(i, n) for (int i = 0; i < n; ++i) #define repr(i, n) for (int i = n; i >= 0; --i) #define stl_rep(itr, x) for (auto itr = x.begin(); itr != x.end(); ++itr) #define all(x) x.begin(), x.end() #define allr(x) x.rbegin(), x.rend() const static int mod = 1000000000 + 7; const static int inf = INT_MAX / 2; const static llong INF = LLONG_MAX / 2; const static double eps = 1e-6; const static int dx[] = {1, 0, -1, 0}; const static int dy[] = {0, 1, 0, -1}; template bool chmax(T &a, const T &b) { if (a < b) { a = b; return 1;} return 0;} template bool chmin(T &a, const T &b) { if (b < a) { a = b; return 1;} return 0;} signed main (int argc, char *argv[]) { cin.tie(0); ios::sync_with_stdio(false); int n; cin >> n; llong dp[51]; dp[0] = 1; for (int i = 1; i <= n; ++i) { if (i == 1) { dp[i] = dp[i - 1]; } else { dp[i] = dp[i - 1] + dp[i - 2]; } } cout << dp[n] << endl; return 0; }