let content = '';
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', buf => {
  content += buf;
});

process.stdin.on('end', () => {
  let [nums, dirs] = content.trim().split('\n');
  nums = nums.split(' ').map(n => parseInt(n, 10));
  dirs = dirs.split('');

  const dice = {
    top: [1, 5, 6, 2].map(n => nums[n - 1]),
    right: [1, 3, 6, 4].map(n => nums[n - 1]),
  };
  const result = dirs.reduce((dice, dir) => roll(dice, dir), dice);
  console.log(result.top[0]);
});

const roll = (dice, dir) => {
  switch (dir) {
    case 'W': {
      return Object.assign({}, dice, {
        top: [
          dice.right[1],
          dice.top[1],
          dice.right[3],
          dice.top[3],
        ],
        right: dice.right.slice(1).concat([dice.right[0]]),
      });
    }
    case 'E': {
      return Object.assign({}, dice, {
        top: [
          dice.right[dice.right.length - 1],
          dice.top[1],
          dice.right[1],
          dice.top[3],
        ],
        right: [dice.right[3]].concat(dice.right.slice(0, -1)),
      });
    }
    case 'S': {
      return Object.assign({}, dice, {
        top: dice.top.slice(1).concat([dice.top[0]]),
        right: [dice.top[1], dice.right[1], dice.top[3], dice.right[3]],
      });
    }
    case 'N': {
      return Object.assign({}, dice, {
        top: [dice.top[3]].concat(dice.top.slice(0, -1)),
        right: [dice.top[3], dice.right[1], dice.top[1], dice.right[3]],
      });
    }
  }
};
