program main
  implicit none
  character(10**6)S,S_compr
  integer:: N,N_compr,i,cnt(3)=0,c_max,c_min,d,last,memo
  logical skip
  read*,S
  S_compr=""
  N = 1;N_compr = 1
  do i=1,len_trim(S)
    if(i==1)then
      S_compr(N_compr:N_compr) = S(i:i)
      N_compr=N_compr+1
    else if(s_compr(N_compr-1:N_compr-1) /= s(i:i))then 
      S_compr(N_compr:N_compr) = S(i:i)
      N_compr=N_compr+1
    endif
  end do
  do i=1,N_compr-1
    cnt(ichar(s_compr(i:i))-64)=cnt(ichar(s_compr(i:i))-64)+1
  end do
	c_max = merge(2,1,cnt(2) > cnt(1))
	if(cnt(3) >= cnt(c_max)) c_max = 3
    c_min = merge(2,1,cnt(2) < cnt(1))
	if(cnt(3) <= cnt(c_min)) c_min = 3
	if(cnt(1) > cnt(2)) call swap(cnt(1),cnt(2))
	if(cnt(1) > cnt(3)) call swap(cnt(1),cnt(3))
	if(cnt(2) > cnt(3)) call swap(cnt(2),cnt(3))
   
	if(cnt(1) == cnt(3))then
	  print"(A)", s_compr
      stop
	endif
 
	d = cnt(3)-cnt(2)
	do i = 1,N_compr-1
    if(ichar(s_compr(i:i))-64 == c_max .and. d > 0)then
      if(i==1)then
        d=d-1
        cnt(3)=cnt(3)-1
        s_compr(i:i) = 'Z'
	  else if(i==N_compr-1 .or. s_compr(i-1:i-1) /= s_compr(i+1:i+1))then
        d=d-1
        cnt(3)=cnt(3)-1
        s_compr(i:i) = 'Z'
      endif
    endif
  end do
  do i = 2, N_compr-1
    if(ichar(s_compr(i:i))-64 == c_max .and. d > 0)then
	  if(ichar(s_compr(i-1:i-1))-64 == c_min)then
        d=d-1
        cnt(1)=cnt(1)-1
        cnt(3)=cnt(3)-1 
        s_compr(i:i) = "Z"
        s_compr(i-1:i-1) = 'Z'
      endif
    endif
  end do
  N = 1;N_compr = 1
  do i=1,len_trim(S_compr)
	if(s_compr(i:i) <= 'C')then
      s_compr(N_compr:N_compr) = s_compr(i:i)
      N_compr=N_compr+1
    endif
  end do
    S_compr=S_compr(1:N_compr-1)
	d = cnt(2)-cnt(1)
	last = -1

  skip=.false.
	do i= 1,N_compr-1
      if(skip)then
        skip=.false.
        cycle
      endif
	  if(d == 0)exit
      if(ichar(s_compr(i:i))-64 == c_max .or. ichar(s_compr(i+1:i+1))-64 == c_max)then
	    if(ichar(s_compr(i:i))-64 /= c_min .and. ichar(s_compr(i+1:i+1))-64 /= c_min)then
	      if(last == -1)then
            s_compr(i:i)=char(ichar(s_compr(i:i))+4) 
            s_compr(i+1:i+1)=char(ichar(s_compr(i:i))+4) 
            d=d-1  
          else if( i == N_compr-2 .or. s_compr(last:last) /= s_compr(i+2:i+2))then
            s_compr(i:i)="D" 
            s_compr(i+1:i+1)="D"
            d=d-1
          endif
        endif
      endif
	  if(ichar(s_compr(i:i)) <= ichar('C'))then
        last = i
      else
        skip=.true.
      endif
	end do
  N_compr=1
  do i=1,len_trim(s_compr)
	if(ichar(s_compr(i:i)) <= ichar('C'))then
      s_compr(N_compr:N_compr) = s_compr(i:i)
      N_compr=N_compr+1
    endif
  end do
  print"(A)", trim(s_compr(1:N_compr-1))
contains
subroutine swap(a,b)
  implicit none
  integer a,b
  a=xor(a,b)
  b=xor(a,b)
  a=xor(a,b)
end subroutine
end