#include <iostream>
#include <cstdio>
#include <map>
#include <string>
#include <algorithm>
#include <vector>
#include <cctype>
namespace headers {
using namespace std;
typedef vector<int> VI;
typedef long long LL;
typedef unsigned long long ULL;
#define FOR(x, b, e) for(int x = b; x <= (e); ++x)
#define FORD(x, b, e) for(int x = b; x >= (e); --x)
#define REP(x, n) for(int x = 0; x < (n); ++x)
#define ALL(c) (c).begin(), (c).end()
#if defined(_MSC_VER)
#define VAR(v,n) decltype(n) v=(n)
#elif defined(__GNUC__)
#define VAR(v, n) __typeof(n) v = (n)
#define putc putc_unlocked
#define getc getc_unlocked
#endif
#define FOREACH(i,c) for(VAR(i,(c).begin());i!=(c).end();++i)
#define SIZE(x) ((int)(x).size())
#define PB push_back
#define ST first
#define ND second
static inline void read(ULL *n)
{
register char c = 0;
while (c < 48) c = getc(stdin);
(*n) = 0;
while (c > 47) { (*n) = (*n) * 10ULL + (c - '0'); c = getc(stdin); }
}
static inline void read(LL *n)
{
register char c = 0;
while (c < 33) c = getc(stdin);
(*n) = 0;
if (c == '-') {
c = getc(stdin);
while (c > 32) { (*n) = (*n) * 10LL - (c - '0'); c = getc(stdin); }
}
else
{
while (c > 32) { (*n) = (*n) * 10LL + (c - '0'); c = getc(stdin); }
}
}
static inline bool readC(ULL *n)
{
register char c = 0;
while (c < 45) { c = getc(stdin); if (c == EOF || c == '\n') return false; };
(*n) = 0;
while (c > 47) { (*n) = (*n) * 10ULL + (c - '0'); c = getc(stdin); }
return true;
}
static inline bool readC(LL *n)
{
register char c = 0;
while (c < 45) { c = getc(stdin); if (c == EOF || c == '\n') return false; };
(*n) = 0;
if (c == '-') {
c = getc(stdin);
while (c > 47) { (*n) = (*n) * 10LL - (c - '0'); c = getc(stdin); }
}
else
{
while (c > 47) { (*n) = (*n) * 10LL + (c - '0'); c = getc(stdin); }
}
return true;
}
static inline void read(unsigned *n)
{
register char c = 0;
while (c < 48) c = getc(stdin);
(*n) = 0;
while (c > 47) { (*n) = (*n) * 10U + (c - '0'); c = getc(stdin); }
}
static inline void read(int *n)
{
register char c = 0;
while (c < 33) c = getc(stdin);
(*n) = 0;
if (c == '-') {
c = getc(stdin);
while (c > 32) { (*n) = (*n) * 10 - (c - '0'); c = getc(stdin); }
}
else
{
while (c > 32) { (*n) = (*n) * 10 + (c - '0'); c = getc(stdin); }
}
}
static inline bool readC(unsigned *n)
{
register char c = 0;
while (c < 45) { c = getc(stdin); if (c == EOF || c == '\n') return false; };
(*n) = 0;
while (c > 47) { (*n) = (*n) * 10U + (c - '0'); c = getc(stdin); }
return true;
}
static inline bool readC(int *n)
{
register char c = 0;
while (c < 45) { c = getc(stdin); };
(*n) = 0;
if (c == '-') {
c = getc(stdin);
while (c > 47) { (*n) = (*n) * 10 - (c - '0'); c = getc(stdin); }
}
else
{
while (c > 47) { (*n) = (*n) * 10 + (c - '0'); c = getc(stdin); }
}
if (c == EOF || c == '\n') return false;
return true;
}
}
using namespace headers;
int main() {
ios_base::sync_with_stdio(0);
char A[] = { 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z', 'X', 'C', 'V', 'B', 'N', 'M' };
char B[26];
for (int i = 0; i < 26; i++)
{
B[A[i] - 'A'] = i + 'A';
}
string in;
while (getline(cin, in)) {
for (int i = 0; i < in.length(); i++) {
if (in[i] >= 'A' && in[i] <= 'Z') {
printf("%c", B[in[i] - 'A']);
}
else {
printf("%c", in[i]);
}
}
printf("\n");
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y2N0eXBlPgoKbmFtZXNwYWNlIGhlYWRlcnMgewoJdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgl0eXBlZGVmIHZlY3RvcjxpbnQ+IFZJOwoJdHlwZWRlZiBsb25nIGxvbmcgTEw7Cgl0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBVTEw7CgojZGVmaW5lIEZPUih4LCBiLCBlKSBmb3IoaW50IHggPSBiOyB4IDw9IChlKTsgKyt4KQojZGVmaW5lIEZPUkQoeCwgYiwgZSkgZm9yKGludCB4ID0gYjsgeCA+PSAoZSk7IC0teCkKI2RlZmluZSBSRVAoeCwgbikgZm9yKGludCB4ID0gMDsgeCA8IChuKTsgKyt4KQojZGVmaW5lIEFMTChjKSAoYykuYmVnaW4oKSwgKGMpLmVuZCgpCgojaWYgZGVmaW5lZChfTVNDX1ZFUikKI2RlZmluZSBWQVIodixuKSBkZWNsdHlwZShuKSB2PShuKQojZWxpZiBkZWZpbmVkKF9fR05VQ19fKQojZGVmaW5lIFZBUih2LCBuKSBfX3R5cGVvZihuKSB2ID0gKG4pCiNkZWZpbmUgcHV0YyBwdXRjX3VubG9ja2VkCiNkZWZpbmUgZ2V0YyBnZXRjX3VubG9ja2VkCiNlbmRpZgoKI2RlZmluZSBGT1JFQUNIKGksYykgZm9yKFZBUihpLChjKS5iZWdpbigpKTtpIT0oYykuZW5kKCk7KytpKQojZGVmaW5lIFNJWkUoeCkgKChpbnQpKHgpLnNpemUoKSkKI2RlZmluZSBQQiBwdXNoX2JhY2sKI2RlZmluZSBTVCBmaXJzdAojZGVmaW5lIE5EIHNlY29uZAoKCXN0YXRpYyBpbmxpbmUgdm9pZCByZWFkKFVMTCAqbikKCXsKCQlyZWdpc3RlciBjaGFyIGMgPSAwOwoJCXdoaWxlIChjIDwgNDgpIGMgPSBnZXRjKHN0ZGluKTsKCQkoKm4pID0gMDsKCQl3aGlsZSAoYyA+IDQ3KSB7ICgqbikgPSAoKm4pICogMTBVTEwgKyAoYyAtICcwJyk7IGMgPSBnZXRjKHN0ZGluKTsgfQoJfQoKCXN0YXRpYyBpbmxpbmUgdm9pZCByZWFkKExMICpuKQoJewoJCXJlZ2lzdGVyIGNoYXIgYyA9IDA7CgkJd2hpbGUgKGMgPCAzMykgYyA9IGdldGMoc3RkaW4pOwoJCSgqbikgPSAwOwoKCQlpZiAoYyA9PSAnLScpIHsKCQkJYyA9IGdldGMoc3RkaW4pOwoJCQl3aGlsZSAoYyA+IDMyKSB7ICgqbikgPSAoKm4pICogMTBMTCAtIChjIC0gJzAnKTsgYyA9IGdldGMoc3RkaW4pOyB9CgkJfQoJCWVsc2UKCQl7CgkJCXdoaWxlIChjID4gMzIpIHsgKCpuKSA9ICgqbikgKiAxMExMICsgKGMgLSAnMCcpOyBjID0gZ2V0YyhzdGRpbik7IH0KCQl9Cgl9CgoJc3RhdGljIGlubGluZSBib29sIHJlYWRDKFVMTCAqbikKCXsKCQlyZWdpc3RlciBjaGFyIGMgPSAwOwoJCXdoaWxlIChjIDwgNDUpIHsgYyA9IGdldGMoc3RkaW4pOyBpZiAoYyA9PSBFT0YgfHwgYyA9PSAnXG4nKSByZXR1cm4gZmFsc2U7IH07CgkJKCpuKSA9IDA7CgoJCXdoaWxlIChjID4gNDcpIHsgKCpuKSA9ICgqbikgKiAxMFVMTCArIChjIC0gJzAnKTsgYyA9IGdldGMoc3RkaW4pOyB9CgkJcmV0dXJuIHRydWU7Cgl9CgoJc3RhdGljIGlubGluZSBib29sIHJlYWRDKExMICpuKQoJewoJCXJlZ2lzdGVyIGNoYXIgYyA9IDA7CgkJd2hpbGUgKGMgPCA0NSkgeyBjID0gZ2V0YyhzdGRpbik7IGlmIChjID09IEVPRiB8fCBjID09ICdcbicpIHJldHVybiBmYWxzZTsgfTsKCQkoKm4pID0gMDsKCgkJaWYgKGMgPT0gJy0nKSB7CgkJCWMgPSBnZXRjKHN0ZGluKTsKCQkJd2hpbGUgKGMgPiA0NykgeyAoKm4pID0gKCpuKSAqIDEwTEwgLSAoYyAtICcwJyk7IGMgPSBnZXRjKHN0ZGluKTsgfQoJCX0KCQllbHNlCgkJewoJCQl3aGlsZSAoYyA+IDQ3KSB7ICgqbikgPSAoKm4pICogMTBMTCArIChjIC0gJzAnKTsgYyA9IGdldGMoc3RkaW4pOyB9CgkJfQoJCXJldHVybiB0cnVlOwoJfQoKCXN0YXRpYyBpbmxpbmUgdm9pZCByZWFkKHVuc2lnbmVkICpuKQoJewoJCXJlZ2lzdGVyIGNoYXIgYyA9IDA7CgkJd2hpbGUgKGMgPCA0OCkgYyA9IGdldGMoc3RkaW4pOwoJCSgqbikgPSAwOwoJCXdoaWxlIChjID4gNDcpIHsgKCpuKSA9ICgqbikgKiAxMFUgKyAoYyAtICcwJyk7IGMgPSBnZXRjKHN0ZGluKTsgfQoJfQoKCXN0YXRpYyBpbmxpbmUgdm9pZCByZWFkKGludCAqbikKCXsKCQlyZWdpc3RlciBjaGFyIGMgPSAwOwoJCXdoaWxlIChjIDwgMzMpIGMgPSBnZXRjKHN0ZGluKTsKCQkoKm4pID0gMDsKCgkJaWYgKGMgPT0gJy0nKSB7CgkJCWMgPSBnZXRjKHN0ZGluKTsKCQkJd2hpbGUgKGMgPiAzMikgeyAoKm4pID0gKCpuKSAqIDEwIC0gKGMgLSAnMCcpOyBjID0gZ2V0YyhzdGRpbik7IH0KCQl9CgkJZWxzZQoJCXsKCQkJd2hpbGUgKGMgPiAzMikgeyAoKm4pID0gKCpuKSAqIDEwICsgKGMgLSAnMCcpOyBjID0gZ2V0YyhzdGRpbik7IH0KCQl9Cgl9CgoJc3RhdGljIGlubGluZSBib29sIHJlYWRDKHVuc2lnbmVkICpuKQoJewoJCXJlZ2lzdGVyIGNoYXIgYyA9IDA7CgkJd2hpbGUgKGMgPCA0NSkgeyBjID0gZ2V0YyhzdGRpbik7IGlmIChjID09IEVPRiB8fCBjID09ICdcbicpIHJldHVybiBmYWxzZTsgfTsKCQkoKm4pID0gMDsKCgkJd2hpbGUgKGMgPiA0NykgeyAoKm4pID0gKCpuKSAqIDEwVSArIChjIC0gJzAnKTsgYyA9IGdldGMoc3RkaW4pOyB9CgkJcmV0dXJuIHRydWU7Cgl9CgoJc3RhdGljIGlubGluZSBib29sIHJlYWRDKGludCAqbikKCXsKCQlyZWdpc3RlciBjaGFyIGMgPSAwOwoJCXdoaWxlIChjIDwgNDUpIHsgYyA9IGdldGMoc3RkaW4pOyB9OwoJCSgqbikgPSAwOwoKCQlpZiAoYyA9PSAnLScpIHsKCQkJYyA9IGdldGMoc3RkaW4pOwoJCQl3aGlsZSAoYyA+IDQ3KSB7ICgqbikgPSAoKm4pICogMTAgLSAoYyAtICcwJyk7IGMgPSBnZXRjKHN0ZGluKTsgfQoJCX0KCQllbHNlCgkJewoJCQl3aGlsZSAoYyA+IDQ3KSB7ICgqbikgPSAoKm4pICogMTAgKyAoYyAtICcwJyk7IGMgPSBnZXRjKHN0ZGluKTsgfQoJCX0KCgkJaWYgKGMgPT0gRU9GIHx8IGMgPT0gJ1xuJykgcmV0dXJuIGZhbHNlOwoJCXJldHVybiB0cnVlOwoJfQp9CnVzaW5nIG5hbWVzcGFjZSBoZWFkZXJzOwoKaW50IG1haW4oKSB7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwoKCWNoYXIgQVtdID0geyAnUScsICdXJywgJ0UnLCAnUicsICdUJywgJ1knLCAnVScsICdJJywgJ08nLCAnUCcsICdBJywgJ1MnLCAnRCcsICdGJywgJ0cnLCAnSCcsICdKJywgJ0snLCAnTCcsICdaJywgJ1gnLCAnQycsICdWJywgJ0InLCAnTicsICdNJyB9OwoKCWNoYXIgQlsyNl07CgoJZm9yIChpbnQgaSA9IDA7IGkgPCAyNjsgaSsrKQoJewoJCUJbQVtpXSAtICdBJ10gPSBpICsgJ0EnOwoJfQoKCXN0cmluZyBpbjsKCgl3aGlsZSAoZ2V0bGluZShjaW4sIGluKSkgewoJCWZvciAoaW50IGkgPSAwOyBpIDwgaW4ubGVuZ3RoKCk7IGkrKykgewoJCQlpZiAoaW5baV0gPj0gJ0EnICYmIGluW2ldIDw9ICdaJykgewoJCQkJcHJpbnRmKCIlYyIsIEJbaW5baV0gLSAnQSddKTsKCQkJfQoJCQllbHNlIHsKCQkJCXByaW50ZigiJWMiLCBpbltpXSk7CgkJCX0KCQl9CgkJcHJpbnRmKCJcbiIpOwoJfQoKCXJldHVybiAwOwp9