#!/usr/bin/python3 import sys a = list(input()) n = len(a) # Používáme Z různých znaků, smí být maximálně M stejných po sobě Z=2 M=2 # Vytvoříme pole X: X[i][j][z] bude 1, pokud a[0:i+1] může končit na j znaků z X = [ [ [ 0 for z in range(Z) ] for j in range(M+1) ] for i in range(n) ] # Inicializujeme X[0][1][z] for z in range(Z): if a[0] == chr(ord('A')+z) or a[0] == '_': X[0][1][z] = 1 # Postupně počítáme další X[i][j][z] for i in range(1, n): for z in range(Z): if a[i] == chr(ord('A')+z) or a[i] == '_': for jj in range(M+1): for zz in range(Z): if zz != z and X[i-1][jj][zz] == 1: X[i][1][z] = 1 for j in range(1, M+1): if X[i-1][j-1][z] == 1: X[i][j][z] = 1 # Rekonstruujeme výstup od konce i = n-1 prev = '#' # Předchozí umístěné písmeno while i >= 0: z = None j = None for jj in range(1, M+1): for zz in range(Z): if X[i][jj][zz] == 1 and zz != prev: z = zz j = jj if z == None: print("NEEXISTUJE") sys.exit() for _ in range(j): a[i] = chr(ord('A')+z) i -= 1 prev = z print("".join(a))