#include using namespace std; using ll = long long; #include using mint = atcoder::modint998244353; using Matrix = vector>; Matrix mul(Matrix A, Matrix B){ ll L = ssize(A); Matrix C(L, vector(L)); for (int i = 0; i < L; i++){ for (int j = 0; j < L; j++){ for (int k = 0; k < L; k++){ C[i][j] += A[i][k]*B[k][j]; } } } return C; } int main(){ ll N,K; cin >> N >> K; Matrix A(4*N, vector(4*N)); for (int i = 0; i < 4*N; i++){ for (int j = 0; j < 4*N; j++){ if (i == 0 && j % 4 == 0) {A[i][j] = 4;} else if (i == 0 && j % 4 != 0) {A[i][j] = 3;} else if (i == 1 && j % 4 != 0) {A[i][j] = 1;} else if (i == j + 1) {A[i][j] = 1;} } } Matrix A_pow(4*N, vector(4*N)); for (int i = 0; i < 4*N; i++){A_pow[i][i] = 1;} ll pw = K-1; while (pw > 0){ if (pw & 1){ A_pow = mul(A_pow,A); } pw >>= 1; A = mul(A,A); } mint ans = A_pow[4*N-1][0]/mint(5).pow(K); cout << ans.val() << '\n'; }