세계적으로 유명한 타일 생산 회사인 오썸타일 사에서는 창사 주년을 맞아 한글을 무늬로 넣은 흥미있는 타일을 생산한다. 정사각형 모양의 각 타일은 격자모양으로 되어 있고, 아래 그림에서 보듯이 격자의 각 칸에는 [풀], [물], [길], [흙] 중 한 글자가 새겨져 있다.
글자가 새겨진 타일들을 여러 장 이어 붙여 지도를 제작하고자 한다. 아래 그림은 장의 타일을 이어 붙여 얻은 지도의 한 형태를 보여 준다. 한 격자 칸에서 상하좌우에 연결된 격자 칸을 인접한 칸이라고 부른다. 또한 한 타일에서 상하좌우에 연결된 타일을 인접한 타일이라 부른다.
여러 장의 타일을 이어 붙여 지도를 만들 때, 아래에서 설명한 규칙을 따라서 제작된 지도는 ‘바른 지도’, 그렇지 않은 지도는 ‘엉터리 지도’라고 부른다.

지도 제작 규칙은 다음과 같다.
- 한 타일 안에 있는 [길]들끼리는 반드시 서로 인접해야 한다.
- [길]을 포함한 타일의 [길] 중 하나는, 적어도 하나 이상의 다른 타일의 [길]과 연결되어야 한다
- [길]의 폭은 반드시 한 칸이어야 한다. (임의의 격자 칸이 모두 [길]로만 이뤄지는 경우가 있어선 안 된다.)
- [물]과 [흙]은 인접해선 안 된다.
- [풀]은 [물]이나 [길]에 반드시 인접해야 한다.
지도에 대한 정보가 주어질 때, 이 지도가 ‘바른 지도’인지 ‘엉터리 지도’인지를 판별하는 프로그램을 작성하고자 한다.
입력 형식
첫 번째 줄에는 타일 종류의 수를 나타내는 정수 ()이 주어진다.
다음 개의 각 줄에는 타일 정보가 주어진다.
타일 정보는 타일의 고유 아이디를 나타내는 정수 와, 격자의 각 칸에 적인 글자 정보로 구성된다. 격자에 적힌 한글 정보는 편의상 영어 알파벳 G(풀), W(물), R(길), D(흙)으로 이뤄져 있고, 좌에서 우로, 위에서 아래로의 순서로 적힌다.
참고로, 타일 아이디 는 중복되지 않는 고유한 값이다. 아래 그림은 아이디가 인 타일에 대한 그림이며 이를 위한 입력 예는 다음과 같다. ()
283 G R D G R R W W W

다음 줄에는 지도의 크기를 나타내는 두 정수 와 이 주어진다. 즉, 개의 타일이 한 가로줄에 이어 붙여 놓여 있으며, 이런 줄 수가 개임을 나타낸다. ()
이어지는 줄 각각엔 개의 정수가 공백으로 구분되어 주어지는데, 각 값은 타일 고유 아이디를 나타내는 정수이다.
출력 형식
주어진 지도가 바른 지도이면 Good, 그렇지 않은 경우엔 Bad를 표준 출력으로 출력한다.
예제
입력
4 33 G G G R R G G R G 71 G R D G R R G R D 65 G R G W R R W W W 92 G R D R R R W W W 2 2 33 71 65 92
출력
Bad
채점 방식
전체 입력 케이스들 중 답을 맞춘 입력 케이스 개수에 비례하여 점수를 받는다.
해설
입력을 받고 전체 맵을 번호에 맞게 세팅한다. 그런 다음 모든 타일에 대해 DFS를 돌린다. DFS는 인접해 있는 (상하좌우)에 대해 같은 타일이면 이동을 하는 규칙이다. 이 과정 속에서 각 타일의 조건에 맞게 체크를 한다. 예를 들어, 길 같은 경우 DFS를 돌리는 과정에서 현재 격자를 포함해서 길로 이루어진 타일을 모두 살펴보아 있는지 체크한다. 마찬가지로 , , , 번 조건을 길, 물, 흙에 대해 DFS 돌릴 때 체크하면 된다.