#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll Pow(ll a, ll b, ll m){
if(b == 0)
return 1;
else if(b & 1)
return a * Pow(a, b - 1, m) % m;
else{
ll num = Pow(a, b/2, m) % m;
return num * num % m;
}
}
int main(){
ios::sync_with_stdio(false);
ll m;
cin >> m;
if (m % 2 == 0) cout << Pow(2, 998244351, 998244353);
else if (m % 4 == 1) cout << (m - 1) * Pow(2 * m, 998244351, 998244353);
else if (m % 4 == 3) cout << (m + 1) * Pow(2 * m, 998244351, 998244353);
return 0;
}
我是按照ternary_tree 的思路来做的