#include using namespace std; typedef long long ll; #define rep(i, n) for (int i = 0; i < (n); i++) #define rep2(i, x, n) for (int i = x; i < (n); i++) #define ALL(n) begin(n), end(n) template inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } const long long INF = numeric_limits::max(); using Graph = vector >; int main() { int n; cin >> n; ll dp[100010]; dp[0] = 0; dp[1] = 1; dp[2] = 2; dp[3] = 3; rep2(i, 4, n + 1) { dp[i] = dp[i - 1] + dp[i - 2]; } cout << dp[n]; }