class dsu(): n=1 parent_or_size=[-1 for i in range(n)] def __init__(self,N): self.n=N self.num = N self.parent_or_size=[-1 for i in range(N)] def merge(self,a,b): assert 0<=a0: result2.append(result[i]) return result2 def count(self): return self.num from math import gcd n, p, q = map(int,input().split()) mod = 998244353 a = list(range(0, n)) for i in range(p // 2): a[i], a[p - i - 1] = a[p - i - 1], a[i] for i in range(q // 2): a[n - q + i], a[n - i - 1] = a[n - i - 1], a[n - q + i] U = dsu(n) for i in range(n): U.merge(i, a[i]) lcm = 1 for v in U.groups(): x = len(v) g = gcd(lcm, x) lcm *= x lcm //= g ans = lcm % mod if p > 1 and q > 1: ans *= 2 ans %= mod print(ans)