Moving Formation

시간 제한1초메모리 제한1024 MB

문제

무한한 2차원 좌표 평면 위에 네 대의 드론 $A$, $B$, $C$, $D$가 배치되어 있다. 최초에는 각각 순서대로 $(0,0)$, $(0,N)$, $(N,N)$, $(N,0)$에 배치되어 있다. 이때, 네 개의 드론 쌍 $(A,B)$, $(B,C)$, $(C,D)$, $(D,A)$는 서로 통신하며 정보를 주고받고 있다. 예를 들어 드론 $A$는 드론 $B$, $D$와 통신을 주고받고 있지만, 드론 $C$와는 통신을 주고받고 있지 않다.

각 드론의 통신 가능 거리는 최대 $N$까지로 제한되어 있다. 어느 순간이라도 통신을 주고받고 있는 두 드론 사이의 거리가 $N$을 초과하면 드론이 오작동을 일으키며 추락한다. 이때 두 드론이 $(x_1,y_1)$, $(x_2,y_2)$에 위치할 때, 드론 사이의 거리는 $\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}$로 계산한다.

드론 조종사인 상우는 네 대의 드론이 오작동을 일으키지 않게 하면서, 각각 순서대로 도착 지점인 $(x,y)$, $(x,y+N)$, $(x+N,y+N)$, $(x+N,y)$로 이동시키고자 한다. 상우는 이를 위해 다음과 같이 드론을 조종하는 작업을 $0$회 이상, $1\, 000$회 이하 수행할 수 있다.

  • 드론 $A$, $B$, $C$, $D$ 중 하나를 선택한다. 선택한 드론을 $R$, 그리고 $R$의 현재 좌표를 $P=(x_1,y_1)$이라고 하자.
  • 드론 $R$을 이동시킬 목표 좌표 $Q=(x_2,y_2)$를 선택한다. 단, $(x_2,y_2)$에 다른 드론이 없어야 한다. $R$은 $P$와 $Q$를 잇는 선분을 따라 이동한다.

상우는 드론을 기가 막히게 조종할 수 있지만 머리는 좋지 않아 여러분에게 도움을 요청했다. 즉, 드론이 오작동을 일으키지 않게 하면서 네 대의 드론을 도착 지점까지 이동시키기 위한 작업을 출력하는 프로그램을 작성해 보자. 단, 작업 횟수를 최소화할 필요는 없다.

입력

첫째 줄에 세 정수 $N$, $x$, $y$가 공백으로 구분되어 주어진다. $(2\le N\le 10;0\le x,y\le 100)$

출력

첫째 줄에 네 대의 드론을 도착 지점으로 옮기는 데 필요한 작업 횟수 $K$를 출력한다. 단, $K$가 최소일 필요는 없다. $(0\le K\le 1\,000)$

$K$가 $1$ 이상이라면, 둘째 줄부터 $K$개의 줄에 수행할 작업을 순서대로 한 줄에 하나씩 출력한다. 각 줄은 R X Y의 형식으로 출력하며, 각 값이 가지는 의미는 다음과 같다.

  • $R$: 네 대의 드론 중 이동시킬 드론을 의미하는 영어 대문자. $R$은 영어 대문자 A, B, C, D 중 하나여야 한다.
  • $X$: 드론 $R$이 이동할 목표 지점의 $x$좌표. $(0\le X\le 200)$
  • $Y$: 드론 $R$이 이동할 목표 지점의 $y$좌표. $(0\le Y\le 200)$
  • $X$와 $Y$는 정수여야 한다.

가능한 모든 입력에 대해서 위 출력 조건을 만족하는 출력이 항상 존재함을 증명할 수 있다.

정답이 여러 개라면 그중 하나만 출력한다.