// https://twitter.com/japanill/status/821609716359004160?s=21&t=QfcJMzPVPw0Jo9QLrBwd_Q
use std::env;
use std::io;
const H:&str = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐうゑをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽぁぃぅぇぉゃゅょ";
const K:&str = "亜慰宇餌悪華鬼苦怪狐沙死酢勢訴駄血律帝斗那尼奴根乃覇卑父屁帆魔魅夢女喪夜遊世羅璃流零露我忌宇壊魚云蛾戯愚外誤座痔頭是憎墮痔尽泥怒婆微撫塀墓波碑腐餅歩挙忌討會押殺友酊";
fn converter(h: &Vec<char>, k: &Vec<char>, c: char) -> char {
if let Some(i) = h.iter().position(|&x| x == c) {
k[i]
} else {
c
}
}
fn transrater(h: &Vec<char>, k: &Vec<char>, cs: String) -> String {
let mut ret = String::new();
for c in cs.chars() {
ret.push(converter(h, k, c));
}
ret
}
fn main() {
let h: Vec<char> = H.chars().collect();
let k: Vec<char> = K.chars().collect();
let args: Vec<String> = env::args().collect();
let mut line = String::new();
io::stdin().read_line(&mut line)
.expect("入力エラー。read_line()で失敗しました。");
let ret = transrater(&h,&k,line);
println!("{}", ret);
}