침착하게 풍선 팔기
시간 제한0.5초메모리 제한512 MB
2 x N 격자의 집을 가로, 세로, 대각선으로 이동하며 모두 한 번씩 방문하는 경로의 수를 10^9+7로 나눈 나머지로 구합니다.
문제
월터는 집집마다 찾아다니며 화려한 풍선을 판다. 매일 그는 도시의 거리 하나를 골라 그곳의 모든 집을 방문하며 풍선을 권한다.
월터의 도시에 있는 거리는 양쪽에 집이 같은 수만큼 있고, 도시의 모든 집 크기는 같다. 따라서 각 거리는 행렬로 볼 수 있다. 각 칸이 집 하나이며, 은 거리 한쪽에 늘어선 집의 수다.
그날 고른 거리에서 월터는 그 거리의 모든 집을 정확히 한 번씩 방문한다. 시작 집은 어느 곳이든 정할 수 있지만, 이동은 가로, 세로, 대각선으로 인접한 집 사이에서만 할 수 있다.

위 표는 인 예시를 보여준다. 1번 집을 방문한 뒤 월터가 바로 이동할 수 있는 곳은 아직 방문하지 않았다면 2번, 7번, 8번 집뿐이다. 11번 집을 방문한 뒤 다음 집은 4번, 5번, 6번, 10번, 12번 중 하나뿐이다.
오늘 집을 나서기 전에 월터는 도시 지도를 보고 고른 거리의 양쪽 집 수를 셌다. 이제 그는 위에서 정한 규칙을 따라 거리의 개 집을 모두 방문하는 서로 다른 방법이 몇 가지인지 알고 싶어 한다. 두 방법은 집을 방문하는 순서가 다를 때에만 서로 다르다. 즉, 두 집 A와 B가 있어서 한 순서에서는 A가 B보다 먼저, 다른 순서에서는 B가 A보다 먼저 방문되는 경우다.
입력
정수 하나가 한 줄에 주어진다 ().
출력
방문 방법의 수를 한 줄에 출력한다. 이 수가 매우 클 수 있으므로, 그 수를 로 나눈 나머지를 출력한다.