#include #include using namespace std; using ll = long long; using namespace atcoder; using mint = modint998244353; int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); /* 各操作で上、左上、右上が出る確率の和 */ int N; cin >> N; mint ans=0; //右、右上、上、右上、左上 vector dp(5), iv(6); for (int i=1; i<=5; i++) iv[i] = mint(i).inv(); for (int i=0; i<5; i++) dp[i] = iv[5]; ans += dp[1]+dp[2]+dp[3]; for (int i=0; i pd(5); pd[0] += dp[0] * iv[2] + dp[1] * iv[3]; pd[1] += dp[0] * iv[2] + dp[1] * iv[3] + dp[2] * iv[3]; pd[2] += dp[1] * iv[3] + dp[2] * iv[3] + dp[3] * iv[3]; pd[3] += dp[2] * iv[3] + dp[3] * iv[3] + dp[4] * iv[2]; pd[4] += dp[3] * iv[3] + dp[4] * iv[2]; swap(dp, pd); ans += dp[1]+dp[2]+dp[3]; } cout << ans.val() << endl; return 0; }