#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;
}