쿼리도
시간 제한1초메모리 제한1024 MB
길이가 2인 벽을 겹치거나 교차하지 않게 놓아서 주어진 쿼리도 벽 배치를 만들 수 있는지 판정한다.
문제
쿼리도란 격자로 구성된 게임판에서 두 선수가 번갈아 말을 움직이거나 칸 사이에 길이가 인 벽을 가로 혹은 세로로 두는 것을 반복하며 진행되는 게임이다. 길이가 인 벽을 둘 때는 가로벽과 세로벽이 서로 교차하게 두거나, 기존에 두어진 벽과 겹치게 두거나, 벽의 일부가 격자 밖으로 나가도록 둘 수는 없다. 게임판의 번째 행 번째 열을 라 하자.
쿼리도를 누구보다 사랑하는 POSCAT 부원들은 매년 쿼리도 챔피언십을 개최해왔다!
심판을 맡은 당신의 역할은 게임이 끝난 게임판의 벽 배치를 바탕으로 올바른 게임이었는지 판단하는 것이다.
예를 들어 일때, 다음 게임판들은 길이 의 벽을 반복해서 두어 만들어 질 수 있으므로 올바른 게임을 통해 만들 수 있는 게임판이다.

올바른 게임에서 나올 수 있는 벽 배치 상태
하지만, 다음 게임판들은 길이 의 벽만으로는 만들 수 없거나 길이 의 벽을 교차해서 두어야 하므로 올바른 게임을 통해 만들 수 없는 게임판이다.

올바른 게임에서 나올 수 없는 벽 배치 상태
게임판의 벽 배치 상태가 주어질 때, 서로 겹치거나 교차할 수 없는 길이가 인 벽을 계속해서 두어서 만들 수 있는 게임판이라면 YES, 만들 수 없는 게임판이라면 NO를 출력하여라.
입력
첫 번째 줄에 게임판의 크기 이 주어진다. ()
두 번째 줄부터 개의 줄에 걸쳐 번째 줄에 개의 정수 이 공백으로 구분되어 주어진다. 는 와 사이에 벽이 있다면 , 그렇지 않다면 이다.
번째 줄부터 개의 줄에 걸쳐 번째 줄에 개의 정수 이 공백으로 구분되어 주어진다. 는 와 사이에 벽이 있다면 , 그렇지 않다면 이다.
출력
주어진 게임판이 올바른 게임을 통해 만들 수 있는 게임판이라면 YES, 불가능하다면 NO를 출력하여라.