B - A + A = B
回になる。(C - B) * 2 + (B - (C - B)) = C
def resolve():
A, B, C = sorted([int(x) for x in input().split(" ")])
# A == B == C のパターン
if A == C:
print(A)
return
# A < B == C のパターン
if B == C:
print(B)
return
# A < B < C のパターンは最終的に A == B < C を経由するので先に A < B < C パターンから処理する。
ans = B-A
C -= B-A
B -= B-A
if C > 2*B:
print(-1)
return
# A == B < C のパターン
ans += C
print(ans)
resolve()
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()