using System;
using System.Collections.Generic;
public class Program {
    public static void Main() {

        //走楼梯模版题,就是斐波那契数列,f(n) = f(n-1) + f(n-2)
        long.TryParse(Console.ReadLine(), out long num);
        if (num <= 2) { //如果为第一阶和第二阶梯,就只有1和2两种走法
            Console.WriteLine(num);
        } else {
            //虽然可用一个数组啥的来储存每个中间状态,但实际计算每个中间状态时只会用到前两个中间状态即dp[i - 2]和dp[i - 1],所以我们用a和b来模拟前两个中间状态
            long a = 1; //dp[1]
            long b = 2; //dp[2]
            long curr = 0;
            long MOD = 998244353;
            for (int i = 3; i <= num; i++) {
                curr = (a + b) %
                       998244353; //斐波那契数列可能非常大,远远超出ulong和long的范围,这是算法竞赛的通用做法 如果答案太大,就对一个大质数取模。
                long temp = b;
                b = curr;
                a = temp;
            }
            Console.WriteLine(curr);
        }
    }
}