Problem:
B: たぬきつね

問題

謎の装置 $M$ があり,この装置に Tanuki と Fox を入れると, 装置から一匹の動物が出てくる（以下, Tanuki を $T$ ,Foxを $F$ とする）.

$M(x, y)$ は,装置 $M$ に $x, y$ の順で動物を入れて出てきた動物を表す.

色々試した結果,以下のことがわかった.

$M(T, T) = T$

$M(T, F) = F$

$M(F, T) = T$

$M(F, F) = T$

あなたは,一列に並んでいる動物たち $P_1, P_2, ... , P_N$ を以下のように装置に入れていった.

$M(....M(M(P_1,P_2), P_3)...., P_N)$

最後に出てくる動物を答えよ.

制約

$2 \leq N \leq 10^{5}$

$P_i$ は $T$ か $F$ の一文字

入力形式

入力は以下の形式で与えられる.

$N$

$P_1\ P_2\ ...\ P_N$

出力

最後に出てくる動物を表す文字 $T$ または $F$ を出力せよ.また,末尾に改行も出力せよ.

サンプル

サンプル入力 1

3
F T T

サンプル出力 1

T

サンプル入力 2

7
F T T F T T F

サンプル出力 2

F

Solution in JavaScript (judge verdict: Runtime Error)

var input = require('fs').readFileSync('/dev/stdin', 'utf8');
var arr=input.trim().split("\n");
var n=arr.shift();
var p=arr.shift().split(" ");
var saiki=function(p,cnt){
   cnt++;
   var a = p[0];
   var b = p[1];
   p=p.slice(2);
   if(a=="T" && b=="T" && p.length!=0)p.unshift("T");
   else if(a=="T" && b=="F" && p.length!=0)p.unshift("F");
   else if(a=="F" && b=="T" && p.length!=0)p.unshift("T");
   else if(a=="F" && b=="F" && p.length!=0)p.unshift("T");
   else if(a=="T" && b=="T" && p.length==0){console.log("T");return}
   else if(a=="T" && b=="F" && p.length==0){console.log("F");return}
   else if(a=="F" && b=="T" && p.length==0){console.log("T");return}
   else if(a=="F" && b=="F" && p.length==0){console.log("T");return}
   if(cnt%2==0)saiki(p,cnt);
   else saiki2(p,cnt);
};
var saiki2=function(p,cnt){
   cnt++;
   var a = p[0];
   var b = p[1];
   p=p.slice(2);
   if(a=="T" && b=="T" && p.length!=0)p.unshift("T");
   else if(a=="T" && b=="F" && p.length!=0)p.unshift("F");
   else if(a=="F" && b=="T" && p.length!=0)p.unshift("T");
   else if(a=="F" && b=="F" && p.length!=0)p.unshift("T");
   else if(a=="T" && b=="T" && p.length==0){console.log("T");return}
   else if(a=="T" && b=="F" && p.length==0){console.log("F");return}
   else if(a=="F" && b=="T" && p.length==0){console.log("T");return}
   else if(a=="F" && b=="F" && p.length==0){console.log("T");return}
   if(cnt%2==0)saiki(p,cnt);
};
var cnt=0;
saiki(p,cnt);