// Praktikum 8
// Alphanumeric Sorting
//
import java.util.Scanner;
import java.lang.Character;
public class nrp5213100087 {
public static void main(String[] args) {
sort Program = new sort();
}
}
class sort {
Scanner get = new Scanner(System.in);
String raw;
String[] array;
int[] mirror;
int dataLength=0;
int idx=0;
void count() {
for (int i = 0; i < raw.length()-1; i++) {
if(Character.isLetter(raw.charAt(i))) {
dataLength++;
} else
if(Character.isDigit(raw.charAt(i))) {
if(Character.isDigit(raw.charAt(i+1))) {
i++;
}
dataLength++;
}
}
if(Character.isLetter(raw.charAt(raw.length()-1))) {
dataLength++;
} else
if(Character.isDigit(raw.charAt(raw.length()-1))) {
if(!Character.isDigit(raw.charAt(raw.length()-2)))
dataLength++;
}
}
void storing() {
for (int i = 0; i < raw.length()-1; i++) { // no crash
if(Character.isLetter(raw.charAt(i))) {
array[idx]=raw.substring(i, i+1);
idx++;
}
else
if(Character.isDigit(raw.charAt(i))) {
if(Character.isDigit(raw.charAt(i+1))) {
array[idx]=raw.substring(i,i+2);
i++;
}
else array[idx]=raw.substring(i,i+1);
idx++;
}
}
if(Character.isLetter(raw.charAt(raw.length()-1))) {
array[idx]=raw.substring(raw.length()-1);
idx++;
}
else
if(Character.isDigit(raw.charAt(raw.length()-1))) {
if(!Character.isDigit(raw.charAt(raw.length()-2))) {
array[idx]=raw.substring(raw.length()-1);
}
}
}
void mirroring() {
for (int i = 0; i < dataLength; i++) {
if(Character.isLetter(array[i].charAt(0)))
mirror[i]=(array[i].codePointAt(0))*2;
else {
if(array[i].length()==1)
mirror[i]=(array[i].codePointAt(0))*2+97;
else
mirror[i]=(Integer.parseInt(array[i])-9+57)*2+97;
}
}
}
void output() {
for (int i = 0; i < dataLength-1; i++) {
System.out.print(array[i]+",");
}
System.out.println(array[dataLength-1]);
}
void bubbleSort() {
int swap;
String flip;
for (int i = dataLength-1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if(mirror[i]<mirror[j]) {
swap = mirror[i];
mirror[i] = mirror[j];
mirror[j] = swap;
flip = array[i];
array[i] = array[j];
array[j] = flip;
}
}
}
}
sort() {
System.out.print("Input : ");
raw=get.nextLine();
count();
array = new String[dataLength];
mirror = new int[dataLength];
storing();
mirroring();
bubbleSort();
output();
}
}