#include <bits/stdc++.h>
long long mod = 998244353;
long long arr[3005][3005];
typedef long long ll;
long long S(long long A,long long B){
memset(arr,0,sizeof(arr));
arr[1][1] = 1;
for(int i = 2; i <= A; i++){
for(int j = 1; j <= i; j++){
arr[i][j] = arr[i - 1][j - 1] + j * arr[i - 1][j];
if(arr[i][j] > mod) arr[i][j] %= mod;
}
}
return arr[A][B];
}
long long Pow_jc(int i,int a){
long long ans = S(i,a) % mod;
if (ans == 0){
return 0;
}
for (int i = 1; i <= a; i++){
ans *= 2;
if (ans >= mod){
ans = ans % mod;
}
ans *= i;
if (ans >= mod){
ans = ans % mod;
}
}
return ans;
}
ll f(ll n){
ll ans = 1;
for(ll i = 1; i <= n; i++){
for(ll j = 0; j <= i; j++){
ans += Pow_jc(i,j);
if (ans >= mod){
ans = ans % mod;
}
}
}
return ans;
}
int main(){
ll n;
scanf("%lld",&n);
printf("%lld",f(n));
return 0;
}