output_description: Print one string with the maximum possible doctoral and postdoctoral quotient
  among the strings that can be obtained by replacing each `?` in T with `P` or
  `D`. If there are multiple such strings, you may print any of them.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      T
attempt: T = input()
  lis = list(T)
  n = lis.count("?")
  
  temp = [i for i, x in enumerate(lis) if x == "?"]
  
  t = 0
  op_cnt = n
  for i in range(2**n):
      op = ["P"] * n  # あらかじめ ["P", "P", "P"] というリストを作っておく
      for j in range(n):
          if (i >> j) & 1:
              op[n - 1 - j] = "D"  # フラグが立っていた箇所を "D" で上書き
  
      for i, e in enumerate(op):
          lis[temp[i]] = e
          LIS = "".join(lis)
          # print(t , LIS.count("PD"))
          if t < LIS.count("PD"):
              t = LIS.count("PD")
              List = LIS
              # print(t,LIS)
          else:
              pass
  print(List)
  
problem_description: Statement
  
  For a string S consisting of the uppercase English letters `P` and `D`, let
  the _doctoral and postdoctoral quotient_ of S be the total number of
  occurrences of `D` and `PD` in S as contiguous substrings. For example, if S =
  `PPDDP`, it contains two occurrences of `D` and one occurrence of `PD` as
  contiguous substrings, so the doctoral and postdoctoral quotient of S is 3.
  
  We have a string T consisting of `P`, `D`, and `?`.
  
  Among the strings that can be obtained by replacing each `?` in T with `P` or
  `D`, find one with the maximum possible doctoral and postdoctoral quotient.
samples: [{"input": "PD?D??P", "output": "PDPDPDP\n    \n\nThis string contains three occurrences of `D` and three occurrences of `PD` as\ncontiguous substrings, so its doctoral and postdoctoral quotient is 6, which\nis the maximum doctoral and postdoctoral quotient of a string obtained by\nreplacing each `?` in T with `P` or `D`.\n\n* * *"}, {"input": "P?P?", "output": "PDPD"}]