def resolve():
# 高速な組み合わせ計算
def comb(N, R, mod):
if N-R < R: R = N-R
# 分母を計算
ans = 1
for n in range(N-R+1, N+1):
ans*=n
if ans > mod: ans%=mod
# 分子を計算
den = 1
for r in range(2, R+1):
den*=r
if den > mod: den%=mod
ans *= pow(den, mod-2, mod)
return ans%mod
mod = 998244353
N = int(input())
if N == 1:
print(0)
return
# 余事象を求める
# N**2 個の数字から 2*N-1 個の数字を選ぶ組み合わせ
comp = comb(N**2, 2*N-1, mod)
# どのマス目に条件を満たさない X を配置するか選ぶ組み合わせ
comp = (comp * (N**2))%mod
# 中央値 X 以外の数字を行と列にそれぞれ配置する組み合わせ。
# (N-1)! を 2 回かける
for _ in range(2):
for n in range(2, N):
comp *= n
if comp >= mod: comp %= mod
# 他の数字を配置する組み合わせ
for n in range(2, (N-1)**2 + 1):
comp *= n
if comp >= mod: comp %= mod
# 全事象は (N**2)!
all_pattern = 1
for n in range(2, N**2 + 1):
all_pattern *= n
if all_pattern >= mod: all_pattern %= mod
print((all_pattern - comp)%mod)
resolve()