import java.util.*;
public class Main{
public static void main(String[] arg){
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine()){
String strs =sc.nextLine();
Map<Integer,Character> map = new HashMap<>();
Character[] arr = new Character[strs.length()];
int arrLen = 0;
for(int i =0; i< strs.length();i++){
if(!(('a'<=strs.charAt(i)&&strs.charAt(i)<='z')||('A'<=strs.charAt(i)&&strs.charAt(i)<='Z'))){
map.put(i,strs.charAt(i));
}else{
//加入新数组
arr[arrLen] = strs.charAt(i);
// System.out.print(arr[arrLen]);
arrLen++;
}
}
// for(int i=0;i<arr.length;i++){
// System.out.print(arr[i]);
// }
//冒泡排序
Character[] sarr = mangpao(arr,arrLen);
// for(int i=0;i<sarr.length;i++){
// System.out.print(sarr[i]);
// }
int j = 0;
StringBuffer buffer = new StringBuffer();
for(int i=0;i<strs.length();i++){
if(map.containsKey(i)){
buffer.append(map.get(i));
}else{
buffer.append(sarr[j]);
j++;
}
}
System.out.println(buffer.toString());
}
}
public static Character[] mangpao(Character[] arr,int len){
for(int i =len-1;i>=1;i--){
for(int j=0;j<i;j++ ){
if(((arr[j]+"").toLowerCase()).compareTo((arr[j+1]+"").toLowerCase())>0){
Character tem = arr[j+1];
arr[j+1] = arr[j];
arr[j] = tem;
}
}
}
return arr;
}
}