typedef struct {
int i;
char c;
} e;
const int N = 1000;
char s[N];
e a[N];
int cmp(const void* a, const void* b) {
e x = *(e*)a, y = *(e*)b;
if (x.c > 'Z') x.c -= 32;
if (y.c > 'Z') y.c -= 32;
return x.c != y.c ? x.c - y.c : x.i - y.i;
}
int main() {
while (gets(s)) {
int n = strlen(s), m = 0;
for (int i = 0; i < n; i++)
if (isalpha(s[i])) {
a[m].i = i;
a[m].c = s[i];
m++;
}
qsort(a, m, sizeof(e), cmp);
for (int i = 0, j = 0; i < n; i++)
if (isalpha(s[i]))
s[i] = a[j++].c;
puts(s);
}
return 0;
}