#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define ll __int64 #define ls rt<<1 #define rs ls|1 #define lson l,mid,ls #define rson mid+1,r,rs #define middle (l+r)>>1 #define clr_all(x,c) memset(x,c,sizeof(x)) #define clr(x,c,n) memset(x,c,sizeof(x[0])*(n+1)) #define eps (1e-8) #define MOD 1000000007 #define INF 0x3f3f3f3f #define PI (acos(-1.0)) #pragma comment(linker, "/STACK:102400000,102400000") template T _max(T x,T y){return x>y? x:y;} template T _min(T x,T y){return x T _abs(T x){return (x < 0)? -x:x;} template T _mod(T x,T y){return (x > 0)? x%y:((x%y)+y)%y;} template void _swap(T &x,T &y){T t=x;x=y;y=t;} template void getmax(T& x,T y){x=(y > x)? y:x;} template void getmin(T& x,T y){x=(x<0 || y b; } bool vis[M]; bool check(char c,int i){ return ret[i-1]!=c && (i+1==ret.length()||ret[i+1]!=c); } void run(){ int i,j; cin>>str; sort(str.begin(),str.end(),cmp); clr_all(vis,0); ret.clear(); ret+=str[0],vis[0]=1; for(i=1,j=1;i=0;j--){ if(str[i]!=ret[j] && (j==0 || str[i]!=ret[j-1])){ ret.insert(j,1,str[i]); break; } } if(j<0) break; } for(i=0;i