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 JAVA (judge verdict: Accepted)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args)
	{
		int k; String c;
		String str = "";
		try {str = new BufferedReader(new InputStreamReader(System.in)).readLine();}
		catch (IOException e) {e.printStackTrace();}

		String result = "";
		for(int i=0;i<str.length()/2;i++)
		{
			k =  Integer.parseInt(str.substring(2*i, 2*i+1));
			c = str.substring(2*i+1, 2*(i+1));

			result += translator(k, c);
		}
		System.out.println(result);
	}

	private static String translator(int k, String c)
	{
		String result = "";
		int[] nums = {0,1,2,3,4,5,6,7,8,9};
		String[] cons = {"w","","k","s","t","n","h","m","y","r"};

		String[] dir = {"T","L","U","R","D"};
		String[] vowel = {"a","i","u","e","o"};

		if(k==0&&c.equals("U"))
		{result += "nn";}
		else
		{
			for(int i=0;i<nums.length;i++)
			{if(nums[i]==k) {result += cons[i];}}

			for(int i=0;i<dir.length;i++)
			{if(c.equals(dir[i])) {result +=vowel[i];}}
		}

		return result;
	}
}