output_description: Let P/Q be the expected number of correct answers you give if you follow an
  optimal strategy, represented as an irreducible fraction. Print P \times
  Q^{-1} modulo 998244353.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N M
attempt: import sys
  from fractions import Fraction
  import json
  
  sys.setrecursionlimit(10000)
  memo = {}
  
  
  def e(m, n):
  
      if m < n:
          m, n = n, m
  
      if (m, n) in memo:
          return memo[(m, n)]
  
      if m == 0:
          return n
      if n == 0:
          return m
      if m == n:
          memo[(m, n)] = e(m - 1, n) + Fraction(1, 2)
      else:
          memo[(m, n)] = (e(m - 1, n) + 1) * Fraction(m, m + n) + e(m, n - 1) * Fraction(
              n, m + n
          )
      return memo[(m, n)]
  
  
  def main():
      n, m = list(map(int, input().split()))
      mod = 998244353
      res = e(n, m)
      p = res.numerator
      q = res.denominator
      print((p * pow(q, mod - 2, mod)) % mod)
  
  
  if __name__ == "__main__":
      main()
  
problem_description: Statement
  
  You are participating in a quiz with N + M questions and Yes/No answers.
  
  It's known in advance that there are N questions with answer Yes and M
  questions with answer No, but the questions are given to you in random order.
  
  You have no idea about correct answers to any of the questions. You answer
  questions one by one, and for each question you answer, you get to know the
  correct answer immediately after answering.
  
  Suppose you follow a strategy maximizing the expected number of correct
  answers you give.
  
  Let this expected number be P/Q, an irreducible fraction. Let M = 998244353.
  It can be proven that a unique integer R between 0 and M - 1 exists such that
  P = Q \times R modulo M, and it is equal to P \times Q^{-1} modulo M, where
  Q^{-1} is the modular inverse of Q. Find R.
samples: [{"input": "1 1", "output": "499122178\n    \n\nThere are two questions. You may answer randomly to the first question, and\nyou'll succeed with 50% probability. Then, since you know the second answer is\ndifferent from the first one, you'll succeed with 100% probability.\n\nThe expected number of your correct answers is 3 / 2. Thus, P = 3, Q = 2,\nQ^{-1} = 499122177 (modulo 998244353), and P \\times Q^{-1} = 499122178 (again,\nmodulo 998244353).\n\n* * *"}, {"input": "2 2", "output": "831870297\n    \n\nThe expected number of your correct answers is 17 / 6.\n\n* * *"}, {"input": "3 4", "output": "770074220\n    \n\nThe expected number of your correct answers is 169 / 35.\n\n* * *"}, {"input": "10 10", "output": "208827570\n    \n\n* * *"}, {"input": "42 23", "output": "362936761"}]