#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
char a[32][24];
int b[32];
int i = 0;
int j = 0;
//ЧТЕНИЕ ВВЕДЁННОЙ СТРОКИ
getline (cin, s);
for (int i = 0; i < 32; i++) {
for (int j = 0; j < 24; j++)
a[i][j] = '*';
b[i] = 0;
}
int x = 0;
int y = 0;
//РАЗДЕЛЕНИЕ СТРОКИ НА СЛОВА
for (int i = 0; i < s.length()-1; i++) {
if (s[i] != ' ') {
a[x][y] = s[i];
y += 1;
}
else {
x += 1;
y = 0;
}
}
int low = 0;
int high = 0;
//ОПРЕДЕЛЕНИЕ РЕГИСТРА
for (i = 0; i < 32; i++) {
if (a[i][0] == '*')
break;
for (j = 0; j < 23; j++) {
if (a[i][j] == '*')
break;
if ((int) a[i][j] > 96 && (int) a[i][j] < 123)
low += 1;
if ((int) a[i][j] > 64 && (int) a[i][j] < 91)
high += 1;
}
if (low != 0 && high == 0) {
a[i][j] = ' ';
b[i] = 1;
}
else if (high != 0 && low == 0) {
a[i][j] = ' ';
b[i] = 2;
}
else {
a[i][j] = ' ';
b[i] = -1;
}
low = 0;
high = 0;
}
int n = i;
j = 0;
//ВЫВОД ИЗМЕНЁННЫХ СЛОВ
for (int i = 0; i < n; i++) {
switch (b[i]) {
case 1:
while (a[i][j] != '*') {
if ((int) a[i][j] > 96 && (int) a[i][j] < 123)
cout << (char) ((int) a[i][j] - 32);
else cout << a[i][j];
j++;
}
break;
case 2:
while (a[i][j] != '*') {
if ((int) a[i][j] > 64 && (int) a[i][j] < 91)
cout << (char) ((int) a[i][j] + 32);
else cout << a[i][j];
j++;
}
break;
}
j = 0;
}
j = 0;
//ВЫВОД ОСТАВШИХСЯ СЛОВ
for (int i = 0; i < n; i++) {
if (b[i] == -1)
while (a[i][j] != '*') {
cout << a[i][j];
j += 1;
}
j = 0;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogc3RyaW5nIHM7CiBjaGFyIGFbMzJdWzI0XTsKIGludCBiWzMyXTsKIGludCBpID0gMDsKIGludCBqID0gMDsKCiAKIC8v0KfQotCV0J3QmNCVINCS0JLQldCU0IHQndCd0J7QmSDQodCi0KDQntCa0JgKIGdldGxpbmUgKGNpbiwgcyk7CiAgCiBmb3IgKGludCBpID0gMDsgaSA8IDMyOyBpKyspIHsKICBmb3IgKGludCBqID0gMDsgaiA8IDI0OyBqKyspCiAgIGFbaV1bal0gPSAnKic7CiAgYltpXSA9IDA7CiAgfQogIAogaW50IHggPSAwOwogaW50IHkgPSAwOwogCiAvL9Cg0JDQl9CU0JXQm9CV0J3QmNCVINCh0KLQoNCe0JrQmCDQndCQINCh0JvQntCS0JAKIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKS0xOyBpKyspIHsKICBpZiAoc1tpXSAhPSAnICcpIHsKICAgICBhW3hdW3ldID0gc1tpXTsKICAgICB5ICs9IDE7CiAgICAgfQogIGVsc2UgewogICAgICAgIHggKz0gMTsKICAgICAgICB5ID0gMDsKICAgICAgIH0KIH0KIAogaW50IGxvdyA9IDA7CiBpbnQgaGlnaCA9IDA7CiAKIC8v0J7Qn9Cg0JXQlNCV0JvQldCd0JjQlSDQoNCV0JPQmNCh0KLQoNCQCiBmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykgewogIGlmIChhW2ldWzBdID09ICcqJykKICAgICBicmVhazsKICBmb3IgKGogPSAwOyBqIDwgMjM7IGorKykgewogICBpZiAoYVtpXVtqXSA9PSAnKicpCiAgICAgIGJyZWFrOwogICAgICAKICAgaWYgKChpbnQpIGFbaV1bal0gPiA5NiAmJiAoaW50KSBhW2ldW2pdIDwgMTIzKQogICAgbG93ICs9IDE7CiAgCiAgIGlmICgoaW50KSBhW2ldW2pdID4gNjQgJiYgKGludCkgYVtpXVtqXSA8IDkxKQogICAgaGlnaCArPSAxOwogIH0KICBpZiAobG93ICE9IDAgJiYgaGlnaCA9PSAwKSB7CiAgICAgIGFbaV1bal0gPSAnICc7CiAgICAgIGJbaV0gPSAxOwogICAgIH0KICBlbHNlIGlmIChoaWdoICE9IDAgJiYgbG93ID09IDApIHsKICAgICAgICAgIGFbaV1bal0gPSAnICc7CiAgICAgICAgICBiW2ldID0gMjsKICAgICAgICAgIH0KICAgICAgIGVsc2UgewogICAgICAgIGFbaV1bal0gPSAnICc7CiAgICAgICAgYltpXSA9IC0xOwogICAgICAgfQogIGxvdyA9IDA7CiAgaGlnaCA9IDA7CiB9CiAKIGludCBuID0gaTsKIGogPSAwOwogCiAvL9CS0KvQktCe0JQg0JjQl9Cc0JXQndCB0J3QndCr0KUg0KHQm9Ce0JIKIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgc3dpdGNoIChiW2ldKSB7CiAgY2FzZSAxOgogICAgIHdoaWxlIChhW2ldW2pdICE9ICcqJykgewogICAgICBpZiAoKGludCkgYVtpXVtqXSA+IDk2ICYmIChpbnQpIGFbaV1bal0gPCAxMjMpCiAgICAgICAgIGNvdXQgPDwgKGNoYXIpICgoaW50KSBhW2ldW2pdIC0gMzIpOwogICAgICBlbHNlIGNvdXQgPDwgYVtpXVtqXTsKICAgICAgaisrOwogICAgIH0KICAgICBicmVhazsKICBjYXNlIDI6CiAgICAgd2hpbGUgKGFbaV1bal0gIT0gJyonKSB7CiAgICAgIGlmICgoaW50KSBhW2ldW2pdID4gNjQgJiYgKGludCkgYVtpXVtqXSA8IDkxKQogICAgICAgICBjb3V0IDw8IChjaGFyKSAoKGludCkgYVtpXVtqXSArIDMyKTsKICAgICAgZWxzZSBjb3V0IDw8IGFbaV1bal07CiAgICAgIGorKzsKICAgICB9CiAgICAgYnJlYWs7CiAgfQogIGogPSAwOwogfQogCiBqID0gMDsKIAogLy/QktCr0JLQntCUINCe0KHQotCQ0JLQqNCY0KXQodCvINCh0JvQntCSCiBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogIGlmIChiW2ldID09IC0xKQogICB3aGlsZSAoYVtpXVtqXSAhPSAnKicpIHsKICAgIGNvdXQgPDwgYVtpXVtqXTsKICAgIGogKz0gMTsKICAgfQogICBqID0gMDsKICB9CiAgIAogcmV0dXJuIDA7Cn0=