#include<bits/stdc++.h>
using namespace std;
const int N=1000005;
int n,r[N],l[N],cnt[3],p[3];
char s[N];
int cmp(int a,int b){
	return cnt[a]<cnt[b];
}
void del(int x){
	r[l[x]]=r[x];
	l[r[x]]=l[x];
}
int main(){
	scanf("%s",s+1);
	n=strlen(s+1);
	s[0]='D';s[n+1]='E';
	r[n+1]=n+1;
	for (int i=0;i<=n+1;i++)r[i]=i+1,l[i]=i-1;
	for (int i=2;i<=n;i++)
		if (s[i]==s[i-1])del(i);
		else cnt[s[i]-'A']++;
	cnt[s[1]-'A']++;
	p[0]=0;p[1]=1;p[2]=2;
	sort(p,p+3,cmp);
	if (cnt[p[1]]!=cnt[p[2]]){
		for (int i=r[0];i!=n+1;i=r[i])
			if (s[i]==p[2]+'A'&&s[l[i]]!=s[r[i]]){
				cnt[p[2]]--;del(i);
				if (cnt[p[2]]==cnt[p[1]])break;
			}
		if (cnt[p[1]]!=cnt[p[2]])
			for (int i=r[0];i!=n+1;i=r[i])
				if (s[l[i]]==p[0]+'A'&&s[i]==p[2]+'A'){
					cnt[p[0]]--,cnt[p[2]]--,del(l[i]),del(i);
					if (cnt[p[2]]==cnt[p[1]])break;
				}
	}
	if (cnt[p[0]]<cnt[p[1]]){
		for (int i=r[r[0]];i!=n+1;i=r[i])
			if (s[l[l[i]]]!=s[r[i]])
				if (s[l[i]]==p[1]+'A'&&s[i]==p[2]+'A'||s[l[i]]==p[2]+'A'&&s[i]==p[1]+'A'){
					cnt[p[1]]--;del(l[i]);del(i);
					if (cnt[p[0]]==cnt[p[1]])break;
				}
	}
	for (int i=r[0];i!=n+1;i=r[i])putchar(s[i]);
}
