// Author: Pawan Raj
// Problem: B. Kavi on Pairing Duty
// Contest: Codeforces - Codeforces Round #722 (Div. 1)
// URL: https://codeforces.com/contest/1528/problem/B

#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define int long long
#define F(i, n) for (int i = 0; i < n; i++)
#define all(x)(x).begin(), (x).end()
#define show(A) for (auto i: A) cout << i << " "; cout << '\n';
#define show_(A, n) F(i, n) { show(A[i]) }

using namespace std;
using ld = long double;
using vi = vector < int > ;
using mi = map < int, int > ;
using pi = pair < int, int > ;

const int N = 1e6+5;
const int MOD = 998244353 ;
const int inf = 1e18 + 1;
/***************************code begins here*****************************/

int dp[N], a[N], s[N];

int32_t main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    int n; cin >> n;
    
    for(int i=2;i<=n;i++){
    	for(int j=2*i;j<=n;j+=i){
    		s[j] ++;
    	}
    }
    
    dp[0] = 0;
    a[0] = 0;
    dp[1] = 1;
    a[1] = 1;
    dp[2] = 4;
    a[2] = 3;
    
    
    for(int i=3;i<=n;i++) {
    	
    	a[i] = (2 + dp[i-1] + s[i])%MOD;;
    	
    	dp[i] = (a[i] + dp[i-1])%MOD;
    }
    
    // show(dp);
    // show(a);
    
    cout << a[n] << '\n';
    

    return 0;
}