#include <bits/stdc++.h>
using namespace std;
const long long mod = 998244353;
const int N = 50005;
long long a[N], A2[N], A1[N], A0[N];
long long b[N], B2[N], B1[N], B0[N];
long long c[N], C2[N], C1[N], C0[N];
long long d[N], D2[N], D1[N], D0[N];
long long f[N];
void init() {
  f[0] = f[1] = 1;
  for (int n = 2; n < N; n++) {
    f[n] = f[n - 1] + f[n - 2];
    if (f[n] >= mod) f[n] -= mod;
  }
  a[0] = 0;
  a[1] = 0;
  a[2] = 4;
  a[3] = 1;
  b[0] = 0;
  b[1] = 1;
  b[2] = 0;
  b[3] = 9;
  c[0] = 0;
  c[1] = 1;
  c[2] = 0;
  c[3] = 9;
  d[0] = 0;
  d[1] = 0;
  d[2] = 4;
  d[3] = 1;
  for (int n = 0; n < 4; n++) {
    A0[n] = A1[n] = A2[n] = 0;
    B0[n] = B1[n] = B2[n] = 0;
    C0[n] = C1[n] = C2[n] = 0;
    D0[n] = D1[n] = D2[n] = 0;
    for (int k = 0; 2 * k <= n; k++) {
      (A0[n] += a[n - 2 * k] * f[k]) %= mod;
      (B0[n] += b[n - 2 * k] * f[k]) %= mod;
      (C0[n] += c[n - 2 * k] * f[k]) %= mod;
      (D0[n] += d[n - 2 * k] * f[k]) %= mod;
      (A1[n] += k * a[n - 2 * k] * f[k]) %= mod;
      (B1[n] += k * b[n - 2 * k] * f[k]) %= mod;
      (C1[n] += k * c[n - 2 * k] * f[k]) %= mod;
      (D1[n] += k * d[n - 2 * k] * f[k]) %= mod;
      (A2[n] += k * k * a[n - 2 * k] * f[k]) %= mod;
      (B2[n] += k * k * b[n - 2 * k] * f[k]) %= mod;
      (C2[n] += k * k * c[n - 2 * k] * f[k]) %= mod;
      (D2[n] += k * k * d[n - 2 * k] * f[k]) %= mod;
    }
  }
  for (int n = 4; n < N; n++) {
    a[n] = (4 * B2[n - 2] + 4 * B1[n - 2] + B0[n - 2] + 4 * A2[n - 1]) % mod;
    b[n] = (4 * A2[n - 2] + 4 * A1[n - 2] + A0[n - 2] + 4 * B2[n - 3] +
            8 * B1[n - 3] + 4 * B0[n - 3]) %
           mod;
    c[n] = (4 * D2[n - 2] + 4 * D1[n - 2] + D0[n - 2] + 4 * C2[n - 1]) % mod;
    d[n] = (4 * C2[n - 2] + 4 * C1[n - 2] + C0[n - 2] + 4 * D2[n - 3] +
            8 * D1[n - 3] + 4 * D0[n - 3]) %
           mod;
    if (n % 2 == 0) {
      (a[n] += (n * 1LL * n % mod) * f[n >> 1]) %= mod;
      (d[n] += (n * 1LL * n % mod) * f[(n >> 1) - 1]) %= mod;
    } else {
      (b[n] += (n * 1LL * n % mod) * f[n >> 1]) %= mod;
      (c[n] += (n * 1LL * n % mod) * f[n >> 1]) %= mod;
    }
    A0[n] = (a[n] + A0[n - 2] + A0[n - 4]) % mod;
    B0[n] = (b[n] + B0[n - 2] + B0[n - 4]) % mod;
    C0[n] = (c[n] + C0[n - 2] + C0[n - 4]) % mod;
    D0[n] = (d[n] + D0[n - 2] + D0[n - 4]) % mod;
    A1[n] = (A1[n - 2] + A1[n - 4] + A0[n - 2] + 2 * A0[n - 4]) % mod;
    B1[n] = (B1[n - 2] + B1[n - 4] + B0[n - 2] + 2 * B0[n - 4]) % mod;
    C1[n] = (C1[n - 2] + C1[n - 4] + C0[n - 2] + 2 * C0[n - 4]) % mod;
    D1[n] = (D1[n - 2] + D1[n - 4] + D0[n - 2] + 2 * D0[n - 4]) % mod;
    A2[n] = (A2[n - 2] + A2[n - 4] + 2 * A1[n - 2] + 4 * A1[n - 4] + A0[n - 2] +
             4 * A0[n - 4]) %
            mod;
    B2[n] = (B2[n - 2] + B2[n - 4] + 2 * B1[n - 2] + 4 * B1[n - 4] + B0[n - 2] +
             4 * B0[n - 4]) %
            mod;
    C2[n] = (C2[n - 2] + C2[n - 4] + 2 * C1[n - 2] + 4 * C1[n - 4] + C0[n - 2] +
             4 * C0[n - 4]) %
            mod;
    D2[n] = (D2[n - 2] + D2[n - 4] + 2 * D1[n - 2] + 4 * D1[n - 4] + D0[n - 2] +
             4 * D0[n - 4]) %
            mod;
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  init();
  int n;
  cin >> n;
  long long ans = (a[n - 1] + d[n - 1]) % mod;
  long long tmp;
  if (n % 2 == 1) {
    tmp = (n - 1) * 1LL * (n - 1) * (n - 1) % mod;
    (tmp *= f[(n - 1) >> 1]) %= mod;
    ans += tmp;
    tmp = (n - 1) * 1LL * (n - 1) * (n - 1) % mod;
    (tmp *= f[(n - 3) >> 1]) %= mod;
    ans += tmp;
  }
  for (int d1 = 1; d1 <= n - 3; d1++) {
    int d2 = n - 2 - d1;
    if (d2 % 2 != 0) continue;
    tmp = d2 * 1LL * d2 * d2 % mod;
    (tmp *= f[d2 >> 1]) %= mod;
    (tmp *= a[d1]) %= mod;
    ans += tmp;
  }
  for (int d1 = 1; d1 <= n - 3; d1++) {
    int d2 = n - 2 - d1;
    if (d2 % 2 != 0) continue;
    tmp = d2 * 1LL * d2 * d2 % mod;
    (tmp *= f[(d2 >> 1) - 1]) %= mod;
    (tmp *= d[d1]) %= mod;
    ans += tmp;
  }
  for (int d1 = 1; d1 <= n - 3; d1++) {
    int d2 = n - 2 - d1;
    if (d2 % 2 != 1) continue;
    tmp = d2 * 1LL * d2 * d2 % mod;
    (tmp *= f[d2 >> 1]) %= mod;
    (tmp *= b[d1]) %= mod;
    ans += tmp;
  }
  for (int d1 = 1; d1 <= n - 3; d1++) {
    int d2 = n - 2 - d1;
    if (d2 % 2 != 1) continue;
    tmp = d2 * 1LL * d2 * d2 % mod;
    (tmp *= f[d2 >> 1]) %= mod;
    (tmp *= c[d1]) %= mod;
    ans += tmp;
  }
  ans %= mod;
  cout << ans << '\n';
  return 0;
}
