import java.util.Scanner;

public class Main {
    // 取模常数
    private static final int MOD = 998244353;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        scanner.close();

        System.out.println(countWays(n));
    }

    /**
     * 计算上n阶楼梯的不同走法数量
     * 每一步可以上1阶或2阶
     */
    private static int countWays(int n) {
        // 处理边界情况
        if (n == 1) {
            return 1;
        }
        if (n == 2) {
            return 2;
        }

        // 创建dp数组,dp[i]表示上i阶楼梯的走法数量
        int[] dp = new int[n + 1];

        // 初始化边界条件
        dp[1] = 1;  // 1阶楼梯只有1种走法:1步1阶
        dp[2] = 2;  // 2阶楼梯有2种走法:1+1或直接2阶

        // 动态规划计算
        for (int i = 3; i <= n; i++) {
            // 第i阶可以从第i-1阶走1步上来,或从第i-2阶走2步上来
            dp[i] = (dp[i - 1] + dp[i - 2]) % MOD;
        }

        return dp[n];
    }
}