本题为问题的困难版本,两题的区别在于字符串的数据范围与小红的操作次数。本题中,小红可以进行任意次操作。

小红正在优化她的提拉米苏配方。配方由一个仅包含字符

,

,

的字符串

表示,其中:


代表可可粉;


代表奶霜;


代表奶油。

小红可以重复进行如下操作任意次(包括

次):

选择两个
不同位置的字符

(奶霜);

将其中一个

(奶霜)从字符串中删除(其右侧字符依次左移补齐);

将另一个

(奶霜)替换为

(奶油)。

请你输出经过
若干次操作后能得到的
字典序最小的配方字符串。
【名词解释】

字符串的
字典序比较:从左到右逐个比较两个字符串的字符。如果在某个位置上字符不同,比较这两个字符的 ASCII 码顺序,ASCII 码小的字符串字典序也小。如果一直比较到其中一个字符串结束,则较短的字符串字典序更小。例如,字符串

和

比较时,由于第一个字符不相同,所以

。
输入描述:
在一行上输入一个长度为
,仅由字符
,
,
组成的字符串
,表示小红的提拉米苏配方。
输出描述:
在一行上输出一个字符串,表示小红能获得的字典序最小的新配方。
示例1
说明
在这个样例中,可以进行一次操作得到
,可以证明这种操作方式得到的字典序是最小的。