#include #include using namespace std; constexpr long long mod = 998244353; vector> mul(const vector> &x, const vector> &y) { int n, m, l; n = x.size(); m = y.size(); l = y[0].size(); vector> res(n, vector(l, 0LL)); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { for (int k = 0; k < l; k++) { res[i][k] += (x[i][j] * y[j][k]) % mod; res[i][k] %= mod; } } } return res; } vector> pow(const vector> &v, long long p) { int sz = v.size(); vector> res(sz, vector(sz, 0)); vector> x = v; for (int i = 0; i < sz; i++) { res[i][i] = 1LL; } while (p > 0) { if (p & 1) { res = mul(res, x); } p >>= 1; x = mul(x, x); } return res; } int main() { long long n; cin >> n; vector> init = { {0}, {1}, {0}, {0} }; vector> p = { {0, 1, 0, 0}, {1, 1, 0, 0}, {1, 0, 0, 0}, {0, 1, 0, 0} }; vector> ans = mul(pow(p, n - 1), init); cout << ((ans[0][0] + ans[1][0] - 1) % mod) << endl; }