import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
String s = in.nextLine();
char[]arr = s.toCharArray();
HashMap<Integer, List<Integer>>map = new HashMap<>();
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 65 && arr[i] <= 90) {
int key = arr[i] - 'A';
if (!map.containsKey(key)) {
List<Integer>list = new ArrayList<>();
list.add(i);
map.put(key, list);
} else {
map.get(key).add(i);
}
} else if (arr[i] >= 97 && arr[i] <= 122) {
int key = arr[i] - 'a';
if (!map.containsKey(key)) {
List<Integer>list = new ArrayList<>();
list.add(i);
map.put(key, list);
} else {
map.get(key).add(i);
}
}
}
PriorityQueue<Integer>queue = new PriorityQueue<>();
for (Integer key : map.keySet()) {
for (int i = 0; i < map.get(key).size(); i++) {
queue.add(map.get(key).get(i));
}
}
for (int i = 0; i < 26; i++) {
if (map.containsKey(i)) {
List<Integer>list = map.get(i);
for (int j = 0; j < list.size(); j++) {
int index = queue.poll();
if (s.charAt(list.get(j)) >= 'a' && s.charAt(list.get(j)) <= 'z') {
arr[index] = (char)(i + 'a');
} else {
arr[index] = (char)(i + 'A');
}
}
}
}
System.out.println(new String(arr));
}
}
}