# ITP1_11_A: Dice 1

class Dice
  Side = Struct.new :neighbors

  class << self
    #     n
    # w center e (back)
    #     s
    def layout_sides(center, n, e, s, w)
      back = ( (1..6).to_a - [center, n, e, s, w] ).first
      Hash.new.tap do |sides|
        sides[center] = Side.new [n, e, s, w]
        sides[back]   = Side.new [s, e, n, w]
        sides[n]      = Side.new [center, w, back, e]
        sides[e]      = Side.new [center, n, back, s]
        sides[s]      = Side.new [center, e, back, w]
        sides[w]      = Side.new [center, s, back, n]
      end
    end
  end

  # Each side has four neighbor sides.
  SIDES = layout_sides(1, 5, 3, 2, 4)

  def initialize(labels, number = 1, neighbors = SIDES[number].neighbors)
    @labels       = labels
    @upper_number = number
    @neighbors    = neighbors
  end

  def upper_side
    @labels[@upper_number]
  end

  def roll_to(direction)
    dir_id      = dir_to_id direction
    next_number = opposite_side dir_id
    neighbors   = spin_neighbors_of next_number, @upper_number, dir_id
    Dice.new @labels, next_number, neighbors
  end

  private

  # Rotate the neighbors of +center+.
  def spin_neighbors_of(center, a_side, dir_id)
    neighbors = SIDES[center].neighbors
    org_dir   = neighbors.index(a_side)
    step = (org_dir - dir_id) % neighbors.size
    neighbors.map.with_index do |n, idx|
      neighbors[ (idx + step) % neighbors.size ]
    end
  end

  def opposite_side(dir_id)
    di_rid = (dir_id + 2) % @neighbors.size
    @neighbors[di_rid]
  end

  def dir_to_id(dir_id)
    case dir_id
    when 'N' then 0
    when 'E' then 1
    when 'S' then 2
    when 'W' then 3
    end
  end
end


labels = gets.chomp.split
label_map = Hash[ *(1..6).to_a.zip(labels).flatten ]
directions = gets.chomp.split('')

dice = Dice.new label_map, 1
dice = directions.inject dice do |dice, direction|
  dice.roll_to direction
end

puts dice.upper_side