#include<cstdio>
#include<algorithm>
#include<cctype>
using namespace std;
inline int read(){
	int x=0; char c=getchar();
	while(!isdigit(c)) c=getchar();
	while(isdigit(c)) x=x*10+(c^'0'),c=getchar();
	return x;
} 
const int maxn=1e6+10;
const int mod=998244353;
int primes[maxn],tot,sig0[maxn],a[maxn];
bool v[maxn];
void Init(int n){
	v[1]=sig0[1]=a[1]=1;
	for(int i=2;i<=n;i++){
		if(!v[i]) primes[++tot]=i,sig0[i]=2,a[i]=1;
		for(int j=1;j<=tot&&i*primes[j]<=n;j++){
			v[i*primes[j]]=true;
			if(i%primes[j]==0){
				sig0[i*primes[j]]=sig0[i]/(a[i]+1)*(a[i]+2);
				a[i*primes[j]]=a[i]+1;
				break;
			}
			sig0[i*primes[j]]=sig0[i]*sig0[primes[j]];
			a[i*primes[j]]=1;
		}
	}
}
int f[maxn];
int main(){
	int n; scanf("%d",&n);
	Init(n); f[1]=1; int sum=1;
	for(int i=2;i<=n;i++) f[i]=(sig0[i]+sum)%mod,sum=(sum+f[i])%mod;
	printf("%d\n",f[n]);
	return 0;
}
