Problem:
サイコロが以下の図のような向きで置かれている．

ここで使用するサイコロは，この図のように，上側に 1，南側に 2 があるときは，東側に 3 があるものとする．サイコロの向かいあう面の和は必ず 7 なので，見えない面はそれぞれ北側 5，西側 4，下側 6 になっている．

　この初期配置の状態から指示に従ってサイコロを動かしていく．ただし，指示は以下の 6 通りの操作を何回か行うものである．

North，East，South，West の各操作は指示された方向へサイコロを 90 度回転させる．
　Right，Left の 2 つの操作は上下の面はそのままで水平方向に 90 度回転させる．（回転させる向きに要注意．）

　初期配置で上の面に出ている目 1 を初期値とし， 1 回の操作が終わるたびに，上の面に出ている目の数を加算していき，指示にしたがってすべての操作を終えたときの合計値を出力するプログラムを作成しなさい.

　入力ファイルの 1 行目には総指示回数 n が書かれていて，続く n 行の各行には「North，East，South，West，Right，Left」のいずれか 1 つの指示が書かれているものとする．ただし， n ≦ 10000 とする．

入力例１

入力例２

5

8

North

West

North

North

East

Left

South

South

West

Right

North

Left

East

　

出力例１

出力例２

21

34

入力

入力は複数のデータセットからなる．n が 0 のとき入力が終了する．データセットの数は 5 を超えない．

出力

データセットごとに、合計値を１行に出力する．

入力例

5
North
North
East
South
West
8
West
North
Left
South
Right
North
Left
East
0

出力例

21
34

各データセットの出力（合計値）の後に改行を入れること。

上記問題文と自動審判に使われるデータは、情報オリンピック日本委員会が作成し公開している問題文と採点用テストデータです。

Solution in Ruby (judge verdict: Accepted)

class Dice
  def init
    @up_value    = 1
    @front_value = 2
    @right_value = 3
    @left_value  = 4
    @back_value  = 5
    @down_value  = 6
  end

  def move_north
    tmp = [@front_value, @up_value, @back_value, @down_value]
    @up_value, @back_value, @down_value, @front_value = tmp
  end

  def move_east
    tmp = [@left_value, @up_value, @right_value, @down_value]
    @up_value, @right_value, @down_value, @left_value = tmp
  end

  def move_west
    tmp = [@right_value, @up_value, @left_value, @down_value]
    @up_value, @left_value, @down_value, @right_value = tmp
  end

  def move_south
    tmp = [@back_value, @up_value, @front_value, @down_value]
    @up_value, @front_value, @down_value, @back_value = tmp
  end

  def move_right
    tmp = [@right_value, @front_value, @left_value, @back_value]
    @front_value, @left_value, @back_value, @right_value = tmp
  end

  def move_left
    tmp = [@left_value, @front_value, @right_value, @back_value]
    @front_value, @right_value, @back_value, @left_value = tmp
  end

  def up_value
    @up_value
  end
end

dice = Dice.new
array = []

while (num = gets.to_i) != 0
  dice.init
  sum = 1
  num.times do
    operation = gets.chomp
    case operation
    when "North"
      dice.move_north
    when "East"
      dice.move_east
    when "West"
      dice.move_west
    when "South"
      dice.move_south
    when "Right"
      dice.move_right
    when "Left"
      dice.move_left
    end
  sum += dice.up_value
  end
  array << sum
end

puts array