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);
}
}
}