Problem:
Score : 200 points

Problem 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.

Constraints

1 \leq |T| \leq 2 \times 10^5

T consists of P, D, and ?.

Input

Input is given from Standard Input in the following format:

T

Output

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.

Sample Input 1

PD?D??P

Sample Output 1

PDPDPDP

This string contains three occurrences of D and three occurrences of PD as contiguous substrings, so its doctoral and postdoctoral quotient is 6, which is the maximum doctoral and postdoctoral quotient of a string obtained by replacing each ? in T with P or D.

Sample Input 2

P?P?

Sample Output 2

PDPD

Solution in JavaScript (Node.js 12.16.1) (judge verdict: Wrong Answer)

function Main(input) {
	var str = input;
	var ans = "";
	var count = 1;
	var str = str.split("\n")[0];
	str = str.split(" ")[0];
	var arr = Array.from(str);
	for(var i = 0;i<arr.length;i++){
	outer: while(arr[i] ==="?"){
				if(i === 0){//先頭が?
				while(arr.length > count){
					if(arr[count]==="P"){//１つ先
						arr[count -1]="D";
						count =1;
						continue outer;
					}else if(arr[count]==="D"){
						arr[count -1]="P";
						count =1;
						continue outer;
					}else {
						count++;
						continue;
					}
				}
				if(arr[0] ==="?"){
						if(arr.length%2===0){
							arr[0]="P";
						}else{
							arr[0]="D"
						}
				}
			}else{
				if(arr[i-1]==="P"){
					arr[i]="D";
				}else if(arr[i-1]==="D"){
					arr[i]="P";					
				}
			}
		}	
	}
	arr = arr.join("");
	console.log(arr);
	}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));