import scala.io.StdIn.readLine

object Types {
  type Roll = ((Int,Int,Int,Int,Int,Int))=>(Int,Int,Int,Int,Int,Int)
}
import Types._

class Dice(var d:(Int,Int,Int,Int,Int,Int)) {
  val fs = (x:(Int,Int,Int,Int,Int,Int)) => x match {case (x1,x2,x3,x4,x5,x6) => (x5,x1,x3,x4,x6,x2) }
  val fw = (x:(Int,Int,Int,Int,Int,Int)) => x match {case (x1,x2,x3,x4,x5,x6) => (x3,x2,x6,x1,x5,x4) }

  def roll(dir:Char)  =
    dir match {
      case 'S' => fs
      case 'N' => fs compose fs  compose fs
      case 'W' => fw
      case 'E' => fw compose fw compose fw
    }

  def apply(f:Roll) = this.d = f(this.d)
  def getTopFace() = d._1.toString
}

object Main extends App {

  val faces = readLine.split(" ").map(_.toInt) match { case Array(x1,x2,x3,x4,x5,x6) => (x1,x2,x3,x4,x5,x6) }
  val dice = new Dice(faces)
  var rolls:Roll = x=>x

  dice.apply(readLine.foldLeft(rolls) { (x:Roll,y) => dice.roll(y) compose x })
  println(dice.getTopFace)
}