#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void out(char *str,char *xiaoxie0,char *xiaoxie1,int *xiaoxie2,int m,int n){
int i,j,t0,t1;
for(i=0;i<m-1;i++){
for(j=0;j<m-1-i;j++){
if(xiaoxie0[j]>xiaoxie0[j+1]){
t0=xiaoxie0[j];
t1=xiaoxie1[j];
xiaoxie0[j]=xiaoxie0[j+1];
xiaoxie1[j]=xiaoxie1[j+1];
xiaoxie0[j+1]=t0;
xiaoxie1[j+1]=t1;
}
}
}
for(i=0;i<m;i++){
if(xiaoxie1[i]){
str[xiaoxie2[i]]=xiaoxie0[i]-32;
}
else str[xiaoxie2[i]]=xiaoxie0[i];
}
for(i=0;i<n;i++){
printf("%c",str[i]);
}
printf("\n");
}
int zimu(char *str,int n){
int i,m=0,xiaoxie2[n];
char xiaoxie0[n],xiaoxie1[n];
for(i=0;i<n;i++){
if((str[i]>='a')&&(str[i]<='z')){
xiaoxie0[m]=str[i];
xiaoxie1[m]=0;
xiaoxie2[m]=i;
m++;
}
else if((str[i]>='A')&&(str[i]<='Z')){
xiaoxie0[m]=str[i]+32;
xiaoxie1[m]=1;
xiaoxie2[m]=i;
m++;
}
}
out(str,xiaoxie0,xiaoxie1,xiaoxie2,m,n);
return m;
}
int main(void) {
char str[10000];
int n=0,i,j;
while(1) {
n=0;
if((str[n]=getchar())==-1) break;
n++;
while((str[n]=getchar())!='\n') n++;
zimu(str,n);
}
return 0;
}