#include<stdio.h>
#include<string.h>
void sort(char *str);
int comp(char a,char b);
int main(){
char str[1000];
while( fgets(str,1000,stdin) !=NULL ){
sort(str);
}
return 0;
}
void sort(char *str){
char strAlp[1000];//字母表
int len=strlen(str);
//模板
if(len>0&&str[len-1]=='\n'){
str[len-1]='\0';
len--;
}
int lenAlp=0;
for(int i=0;i<len;i++){
if( ( str[i]<='Z'&&str[i]>='A' ) || ( str[i]<='z'&&str[i]>='a' ) )
strAlp[lenAlp++]=str[i];
}
strAlp[lenAlp]='\0';
//冒泡稳定排序
for(int i=0;i<lenAlp-1;i++){
for(int j=0;j<lenAlp-i-1;j++){
if( comp( strAlp[j],strAlp[j+1] ) ){
char temp=strAlp[j];
strAlp[j]=strAlp[j+1];
strAlp[j+1]=temp;
}
}
}
//修改
int j=0;
for(int i=0;i<len;i++){
if( ( str[i]<='Z'&&str[i]>='A' ) || ( str[i]<='z'&&str[i]>='a' ) ){
str[i]=strAlp[j++];
}
}
//输出
printf("%s\n",str);
}
int comp(char a,char b){
if(a<='Z' && a>='A') a=a-'A'+'a';
if(b<='Z' && b>='A') b=b-'A'+'a';
return a>b;
}