// http://yukicoder.me/submissions/3556 function Main(input) { var inputArr = input.split('\n'), reply, i, j, turn_num, num = turn = 0, answer = mask = ~0; // ビット反転 turn_num = inputArr[0]; for(i = 0; i < turn_num; i++) { turn = 0; for(j = 0; j < 4; j++) { num = inputArr[(i+1)].split(' ')[j]; num = 1 << num; // 1をnumだけ左にシフト turn |= num; } reply = inputArr[(i+1)].split(' ')[4]; answer &= (reply == "NO") ? ~turn : turn; } // turnのビットを反転~させると答えに関係ない // 上位ビットが全て1になる。そのためマスクで消す。 mask <<= 10; answer ^= mask; // answerとmaskで異なるビットだけを残す for(i=0; i < 10; i++) { // 最下位ビットが1の時iが答え if (answer & 1==1) break; else answer >>= 1; // 1ビット右にシフト } console.log(i); } // Don't edit this line! Main(require("fs").readFileSync("/dev/stdin", "utf8"));