import java.util.Arrays;
import java.util.Scanner;
/**
* 【字符串排序】
*
* 编写一个程序,将输入字符串中的字符按如下规则排序。
*
* 规则 1 :英文字母从 A 到 Z 排列,不区分大小写。
* 如,输入: Type 输出: epTy
*
* 规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。
* 如,输入: BabA 输出: aABb
*
* 规则 3 :非英文字母的其它字符保持原来的位置。
* 如,输入: By?e 输出: Be?y
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String nextLine = sc.nextLine();
char[] chars = nextLine.toCharArray();
char[] copyChars = new char[chars.length];
// 复制原始字符数组
for (int i = 0; i < chars.length; i++) {
copyChars[i] = chars[i];
}
// 去掉非字母字符
String replaceAll = nextLine.replaceAll("[^a-zA-Z]", "");
char[] charArray = replaceAll.toCharArray();
// 冒泡排序(稳定排序,不改变原本顺序)
for (int i = 0; i < charArray.length - 1; i++) {
for (int j = 0; j < charArray.length - i - 1; j++) {
char aCase = Character.toLowerCase(charArray[j]);
char bCase = Character.toLowerCase(charArray[j + 1]);
if (aCase > bCase) {
char temp = charArray[j];
charArray[j] = charArray[j + 1];
charArray[j + 1] = temp;
}
}
}
// 打印结果
for (int i = 0, j = 0; i < copyChars.length; i++) {
if (!Character.isLetter(copyChars[i])) {
System.out.print(copyChars[i]);
continue;
}
System.out.print(charArray[j]);
j++;
}
}
}