#include <stdio.h>

int main(){
  int dice[7];
  char com[1000];
  int i,j,k;
  int n,e,w,s,top;

  for(i=1;i<=6;i++) scanf("%d",&dice[i]);
  scanf("%s",com);
  top=1;
  n=5;
  s=2;
  w=4;
  e=3;



  for(i=0;com[i]!='\0';i++){
    if(com[i]=='N'){
      n=top;
      top=s;
      s=7-n;
    }else if(com[i]=='S'){
      s=top;
      top=n;
      n=7-s;
    } else if(com[i]=='W'){
      w=top;
      top=e;
      e=7-w;
    }else if(com[i]=='E'){
      e=top;
      top=w;
      w=7-e;
    }
  }
  printf("%d\n",dice[top]);

  return 0;
}
#include <bits/stdc++.h>
using namespace std;

int main(){
	string s; cin >> s;
  	map<char,vector<int>> dist;
  	for(int i=0; i< s.size(); i++){
    	dist[s.at(i)].push_back(i);
      	
    }
  	/*ここからアンバランス探しmapにはアルファベットと出現箇所が紐づけ
    各アルファベットについて、隣り合ってたらok
  	*/
  	bool seikai = false;
  	for(auto& a: dist ){
    	if(a.second.size()>1){
        	for(int i=0; i< a.second.size() - 1; i++ ){
            	if((a.second[i+1] - a.second[i] ==1) ||
                   (a.second[i+1] - a.second[i]==2)){
                	cout << a.second[i] +1<< " " << a.second[i+1] +1;
                  	seikai = true;
                  	goto Finish;
                	
                }
            }
        }
    }
  	Finish:
  	if(!seikai){cout << -1 << " " << -1;}
  	cout << endl;
  	
}
