#include <bits/stdc++.h>
using namespace std;
vector <char> pd;
int pdIndexGlobal = 0;
int hatenaNum;
string ans;
string t;
int pdPoint=0;
// void checkAnswer(){
//     int pdIndex = 0;
//     int tmpPoint = 0;
//     #if 0
//     for(int i = 0; i<pd.size(); i++){
//         cout << pd[i];
//     }
//     cout << endl;
//     #endif
//     vector <char> tmpV(t.length(),'_');
//     for(int i = 0; i < t.length(); i++){
//         if(t[i]=='?'){
//             tmpV[i]=pd[pdIndex];
//             pdIndex++;
//         }else{
//             tmpV[i]=t[i];
//         }
//     }
//     for(int i = 0; i < tmpV.size(); i++){
//         if(i!=tmpV.size()-1){
//             char tmp1 = tmpV[i];
//             char tmp2 = tmpV[i+1];
//             if((tmp1=='P')&&(tmp2=='D')){
//                 tmpPoint++;
//             }
//             if(tmp1=='D'){
//                 tmpPoint++;
//             }
//         }else{
//             char tmp = tmpV[i];
//             if(tmp=='D'){
//                 tmpPoint++;
//             }
//         }
//     }
//     //cout << tmpPoint << endl;
//     if(pdPoint<tmpPoint){
//         pdPoint=tmpPoint;
//         ans.clear();
//         pdIndex=0;
//         for(int i = 0; i<tmpV.size(); i++){
//             char tmp = tmpV[i];
//             //cout << tmp;
//             ans.push_back(tmp);
//             //cout << tmp;
//         }
//         // for(int i = 0; i<ans.size(); i++){
//         //     cout << ans[i];
//         // }
//         // cout << endl;
//     }
// }
// void dfs(char c){
//     pd[pdIndexGlobal]=c;
//     pdIndexGlobal++;
//     //cout << c << endl;
//     if(pdIndexGlobal>=hatenaNum){
//         //checkAnswer
//         checkAnswer();
//     }else{
//         dfs('P');
//         pdIndexGlobal--;
//         dfs('D');
//         pdIndexGlobal--;
//     }
// }
int main(){
    cin >> t;
    #if 0
    for(int i = 0; i < t.length(); i++){
        if(t[i]=='?'){
            hatenaNum++;
        }
    }
    pd=vector<char>(hatenaNum,'_');
    //cout << hatenaNum << endl;
    dfs('P');
    pdIndexGlobal--;
    dfs('D');
    pdIndexGlobal--;
    #else
    for(int i = 0; i<t.length(); i++){
        if(t[i]=='?'){
            t[i]='D';
        }
    }
    // for(int i = t.length()-1; i >= 0; i--){
    //     if(i==t.length()-1){
    //         if(t[i]=='?'){
    //             t[i]='D';
    //         }
    //     }else if(i==0){
    //         if(t[i]=='?'){
    //             t[i]='D';
    //         }
    //     }else{
    //         if(t[i]=='?'){
    //             if(t[i-1]=='?'){
    //                 t[i-1]='P';
    //                 t[i]='D';
    //             // }else if(t[i-1]=='P'){
    //             //      t[i]='D';
    //             // }else if(t[i+1]=='D'){
    //             //      t[i]='P';
    //             }else{
    //                 t[i]='D';
    //             }
    //         }
    //     }
    // }
    // for(int i = 0; i < t.length(); i++){
    //     if(i!=t.length()-1){
    //         if(t[i]=='?'){
    //             if(t[i+1]=='D'){
    //                 t[i]='P';
    //             }else if(t[i+1]=='?'){
    //                 t[i]='P';
    //                 t[i+1]='D';
    //             }else{
    //                 t[i]='D';
    //             }
    //         }
    //     }else{
    //         if(t[i]=='?'){
    //             t[i]='D';
    //         }
    //     }
    // }
    #endif
    // for(int i = 0; i<ans.size(); i++){
    //     cout << ans[i];
    // }
    // cout << endl;
    cout << t << endl;
    return 0;
}

Measured memory_bytes: 3780