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