Problem:
Flick Input

A: フリック入力

二次元が大好きな大学生，通称2D君は，長年使用していたガラパゴス携帯からスマホに買いかえた．初めてスマホを操作した2D君は，文字入力の方式が，昔の携帯と少し違うことに気付いた．スマホでは，画面をタッチ・フリックできることを利用して，フリック入力という方式が採用されていたのである(フリックとは，「画面上で指を滑らせて弾く操作」を意味する)．フリック入力は，次に示すような文字入力方式である．

フリック入力では，図A(a)のように，0-9の10個のボタンにより入力を行う(#と*については，今回は省略している)．各ボタンには，図のようにあ行-わ行が1つずつ割り当てられている．

図A: スマホのボタン詳細

ある1つのボタンは，図A(b)に表す方法により操作することができる．つまり，

ボタンを「タッチ」するだけだと，そのボタンに対応する「あ段」の文字を出力

ボタンを「左に向かってフリック」すると，「い段」を出力

ボタンを「上に向かってフリック」すると，「う段」を出力

ボタンを「右に向かってフリック」すると，「え段」を出力

ボタンを「下に向かってフリック」すると，「お段」を出力

ということである．フリック入力の仕方を全てのボタンについて表すと図A(c)のようになる．「ん」を出力するためには，ボタン0を上側にフリックすることに注意してほしい．

あなたの仕事は，フリック入力の操作を示す文字列が与えられたとき，その操作の結果出力される文字列を求めることである．

Input

フリック入力の操作を表す文字列が，1行で与えられる(2文字以上1000文字以下)．この文字列は，操作するボタンを表す'0'-'9'の数字と，フリック方向を表す'T'，'L'，'U'，'R'，'D'の5種類の文字の組み合わせからなる．

フリック方向を表す文字は，次の意味を表す．

'T'：タッチするだけ

'L'：左にフリックする

'U'：上にフリックする

'R'：右にフリックする

'D'：下にフリックする

例えば，"2D"は，「2のボタンを下に向かってフリック」という操作を表すため，「こ」を出力することができる．

与えられる文字列は，数字1文字とフリック方向を表す1文字が交互に現れる．また，必ず数字1文字から始まり，フリック方向を表す1文字で終わる．さらに，図A(c)において，文字がない場所に向かってフリックを行うことはない("8L"などの入力はない)．

Output

フリック入力操作の結果を表す文字列をローマ字表記で出力せよ．

ローマ字の子音には，

か行：'k'

さ行：'s'

た行：'t'

な行：'n'

は行：'h'

ま行：'m'

や行：'y'

ら行：'r'

わ行：'w'

を使用すること．ひらがな1文字を表すローマ字は，上記で表される子音と母音（'a'，'i'，'u'，'e'，'o'）をセットにして2文字で出力すること．"shi"や"fu"はこの条件に反するため間違いである．ただし，「あ行」の文字は母音1文字だけを出力し，「ん」は'n'を2回続けて"nn"と出力すること．

文字列の最後には，改行を出力すること．

Sample Input 1

5R2D

Sample Output 1

neko

Sample Input 2

8U9U6U0T

Sample Output 2

yuruhuwa

Sample Input 3

9L4U7R1L2D0U4R3U4D

Sample Output 3

ritumeikonntesuto

Solution in C# (judge verdict: Accepted)

using System.Collections.Generic;
using System;

public class hello
{
    public static void Main()
    {
        var shiin = new string [] { "w","", "k" , "s" ,"t" ,"n" ,"h" ,"m" , "y" ,"r" };
        var boin = new char[] { 'T', 'L', 'U', 'R', 'D' };
        var boin2 = new string[] { "a", "i", "u", "e", "o" };
        var d = new Dictionary<char, string>();
        for (int i = 0; i < 5; i++) d[boin[i]] = boin2[i];
        var s = Console.ReadLine().Trim();
        Console.WriteLine(GetStr(d, shiin, s));
    }
    public static string GetStr (Dictionary<char,string> d ,string[] shiin , string s)
    {
        var ans = "";
        for (int i = 0; i < s.Length; i+=2)
        {
            var a = int.Parse(s[i].ToString());
            ans += shiin[a] + d[s[i + 1]];
        }
        var ans2 = ans.Replace("wu", "nn");
        return ans2;
    }
}