#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; using namespace atcoder; typedef long long ll; typedef pair P; int main() { string s; cin>>s; bool all=1; int n=s.size(); for(int i=0; i=0; i--){ if(s[i]=='?') continue; int mx=0; for(int j=s[i]-'a'+1; j<26; j++){ mx=max(mx, dp[j]); } dp[s[i]-'a']=mx+1; } int l=*max_element(dp, dp+26); fill(dp, dp+26, 0); for(int i=n-1; i>=0; i--){ if(s[i]=='?'){ s[i]='a'; for(int j=25; j>=0; j--){ if(dp[j]==l){ s[i]=(char)('a'+j); break; } } continue; } int mx=0; for(int j=s[i]-'a'+1; j<26; j++){ mx=max(mx, dp[j]); } dp[s[i]-'a']=mx+1; } cout<