Problem:
三目並べ

3 × 3 の盤面の三目並べを考えましょう。三目並べは 2 人で行う対戦ゲームです。先攻後攻を決め、一人は黒石、一人は白石を打ちます。盤面に石を交互に一つずつ置いていき、縦横斜めのいずれかの方向に先に 3 つ自分の石を並べた人が勝ちとなります。

盤面の情報を入力とし、勝敗の判定を行い、黒が勝ちの場合は「b」、白が勝ちの場合は「w」、どちらもそろっていない場合は「NA」と出力するプログラムを作成してください。 盤面の情報は、3行3列の文字列で構成されます。「b」は黒石、「w」は白石、「+」(半角プラ
ス)は何も置かれていない状況を表します。ただし、同時に黒が3つ、白が3つ並ぶことはありませ
ん。

Input

複数のデータセットの並びが入力として与えられます。入力の終わりはゼロひとつの行で示されます。
各データセットは以下の形式で与えられます。

board1
board2
board3

i 行目に盤面の i 行目の情報を表す文字列 boardi が与えられます。

データセットの数は 50 を超えません。

Output

データセット毎に、「b」、「w」、「NA」のいずれかを１行に出力します。

Sample Input

bbw
wbw
+b+
bwb
wbw
wbw
0

Output for the Sample Input

b
NA

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace Test1 {

    


    class ClassMain {

        public static bool isBwin(string str0, string str1, string str2) {
            if (str0 == "bbb") { return true; }
            if (str1 == "bbb") { return true; }
            if (str2 == "bbb") { return true; }
            if (str0[0] == 'b' && str1[0] == 'b' && str2[0] == 'b' ) { return true; }
            if (str0[1] == 'b' && str1[1] == 'b' && str2[1] == 'b') { return true; }
            if (str0[2] == 'b' && str1[2] == 'b' && str2[2] == 'b') { return true; }
            if (str0[0] == 'b' && str1[1] == 'b' && str2[2] == 'b') { return true; }
            if (str0[2] == 'b' && str1[1] == 'b' && str2[0] == 'b') { return true; }
            return false;
        }

        public static bool isWwin(string str0, string str1, string str2) {
            if (str0 == "www") { return true; }
            if (str1 == "www") { return true; }
            if (str2 == "www") { return true; }
            if (str0[0] == 'w' && str1[0] == 'w' && str2[0] == 'w') { return true; }
            if (str0[1] == 'w' && str1[1] == 'w' && str2[1] == 'w') { return true; }
            if (str0[2] == 'w' && str1[2] == 'w' && str2[2] == 'w') { return true; }
            if (str0[0] == 'w' && str1[1] == 'w' && str2[2] == 'w') { return true; }
            if (str0[2] == 'w' && str1[1] == 'w' && str2[0] == 'w') { return true; }
            return false;
        }

       

        public static void Main(String[] args) {
            string line;
            while ((line = Console.ReadLine()) != null) {
                if (line.Equals("0")) { break; }
                string s1 = Console.ReadLine();
                string s2 = Console.ReadLine();
                if (isBwin(line, s1, s2)) { Console.WriteLine("b"); }
                else if (isWwin(line, s1, s2)) { Console.WriteLine("w"); }
                else { Console.WriteLine("NA");}
            }
        }
    
    }



    
}