#include #include #include #include using namespace std; #define FOR(i, begin, end) for(int i=(begin),i##_end_=(end);i=i##_begin_;i--) #define REP(i, n) FOR(i,0,n) #define IREP(i, n) IFOR(i,0,n) #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,mmx,avx,avx2") int main() { cin.tie(nullptr), ios::sync_with_stdio(false); string Si; cin >> Si; array s; FOR(n, 1, 27) { auto S = Si; bool failed = false; s.fill(0); s[0] = n; IREP(i, S.size()) { auto &c = S[i]; if (c == '?') { int t = 0; while (!s[t]) t++; c = 'a' + t; } else { int j = c - 'a'; while (j >= 0 and !s[j]) j--; if (j < 0) { failed = true; break; } s[j]--; s[c - 'a']++; } } if (!failed) { cout << S << '\n'; return 0; } } }