N×M 칸으로 이루어진 격자가 있다. 격자의 일부 칸들은 막혀서 갈 수 없는 칸들이고, 다른 칸들은 갈 수 있는 칸들이다. 이제 다음 규칙을 따라서 갈 수 있는 칸들에 색을 칠하려고 한다.
예를 들어 다음 예를 살펴보자. 2×3 격자의 모든 칸이 갈 수 있는 칸들인 다음 예제에서, 가장 왼쪽 위인 (0,0)에서 출발하면 왼쪽 그림과 가운데 그림의 예와 같이, 어떻게 이동하더라도 모든 갈 수 있는 칸을 적어도 한 번 파란색, 그리고 적어도 한 번 노란색으로 칠할 수 없다. 반면, (0,1)에서 출발하여 오른쪽 그림처럼 이동하면 모든 갈 수 있는 칸을 적어도 한 번 파란색, 그리고 적어도 한 번 노란색으로 칠할 수 있음을 알 수 있다.

격자의 크기와 배치가 주어졌을 때, 모든 갈 수 있는 칸을 파란색과 노란색으로 칠할 수 있는 지를 구하려 한다. 여러분은 이 문제를 풀기 위해서 다음 함수를 구현해야만 한다.
int yellowblue( int N, int M, vector<string> V ) ; 단 한번 호출되는 함수 이다. N과 M은 격자의 크기를 나타낸다. V는 격자의 상태를 나타내는 크기 N인 string 의 배열(vector)이다. V의 각 string의 길이는 M이다. 격자의 (i,j)번째 칸이 갈 수 있는 칸이라면 V[i]의 j번째 글자는 ‘.’이고, 막혀 있는 칸이면 ‘#’이다. 만약 어떤 위치에 서 시작하여 격자의 모든 갈 수 있는 칸을 적어도 한 번 파란색, 적어도 한 번 노란색으로 칠할 수 있다면 1을, 그렇지 않다면 0을 return해야 한다.