#include <stdio.h>
#include <iostream>
#include <map>
#include <string.h>
using namespace std;
static void InitMapByChars(map<char, char>& charMap, const char* info)
{
int nLen = strlen(info);
for (int i = 1; i < nLen; ++i)
charMap.insert(pair<char, char>(info[i], info[i - 1]));
}
static void InitMap(map<char, char>& charMap)
{
InitMapByChars(charMap, "`1234567890-=");
InitMapByChars(charMap, "QWERTYUIOP[]\\");
InitMapByChars(charMap, "ASDFGHJKL;'");
InitMapByChars(charMap, "ZXCVBNM,./");
}
#define MAX_BUF_SIZE 4096
static void HandleLine(const map<char, char>& charMap, char* info)
{
int i = 0;
while((info[i] != '\n') && (info[i] != '\0'))
{
map<char, char>::const_iterator iter = charMap.find(info[i]);
if (iter != charMap.end())
cout << iter->second;
else
cout << info[i];
++i;
}
cout << endl;
}
static void DoTest()
{
map<char, char> charMap;
InitMap(charMap);
char buf[MAX_BUF_SIZE];
while(true)
{
if (!fgets(buf, MAX_BUF_SIZE, stdin))
return;
if (buf[0] == '\n')
return;
HandleLine(charMap, buf);
}
}
int main(int argc, char* argv[])
{
DoTest();
return 0;
}