육각형 타일을 벌집처럼 이어 붙인 판이 있다. 타일은 빨강, 초록, 파랑 중 하나로 칠하되, 변을 맞대고 있는 두 타일은 서로 다른 색이어야 한다. 이 조건을 만족하는 칠 방법 가운데 아래 그림의 판을 쓴다.

이 판의 어느 파란 타일 정중앙에 로봇이 오른쪽을 바라보고 놓여 있다. 로봇에게 줄 수 있는 명령은 LEFT, RIGHT, MOVE 세 가지다. 명령을 정확히 정의하려고 타일 중앙에 선 로봇이 바라볼 수 있는 방향을 아래 그림처럼 0번부터 5번까지 번호로 나타낸다. 처음에 로봇은 오른쪽, 즉 0번 방향을 바라본다.

LEFT: 지금 바라보는 방향이 x번이면 명령을 수행한 뒤 x−1번 방향을 바라본다. x가 0이었다면 5번 방향이 된다.RIGHT: 지금 바라보는 방향이 x번이면 명령을 수행한 뒤 x+1번 방향을 바라본다. x가 5였다면 0번 방향이 된다.MOVE: 지금 바라보는 방향으로 변 하나를 넘어 이웃한 타일의 정중앙으로 간다. 바라보는 방향은 그대로다.로봇이 명령을 어떤 순서로 수행할지는 아직 정해지지 않았지만, LEFT를 L번, RIGHT를 R번, MOVE를 M번 수행한다는 것은 정해져 있다. 그러므로 로봇이 수행할 수 있는 서로 다른 명령 순서는 모두
L!R!M!(L+R+M)!
가지다. L, R, M이 주어질 때 로봇이 마지막에 멈춘 타일의 색이 빨강인 순서의 개수, 초록인 순서의 개수, 파랑인 순서의 개수를 구하는 프로그램을 작성하라.
첫째 줄에 LEFT를 수행할 횟수 L, RIGHT를 수행할 횟수 R, MOVE를 수행할 횟수 M이 공백으로 구분되어 주어진다. (0≤L,R,M≤2000)
세 줄에 걸쳐 출력한다. 첫째 줄에는 로봇이 멈춘 타일이 빨강인 순서의 개수, 둘째 줄에는 초록인 순서의 개수, 셋째 줄에는 파랑인 순서의 개수를 출력한다. 답이 매우 커질 수 있으므로 세 값 모두 1,000,000,007로 나눈 나머지를 출력한다.