문어 게임
시간 제한1초메모리 제한512 MB
두 카드의 초기 값이 주어질 때, 한 카드에 0이 쓰이도록 다른 카드의 배수를 더하는 동작을 50회 이하로 출력하고, 모든 중간 값의 절댓값이 10^18 이하가 되게 한다.
문제
어느 나라에서 문어 게임이라는 대회가 열린다.
이번 라운드에서 참가자는 수학 퍼즐을 푼다. 각 플레이어는 카드 두 장을 가지고 시작하며, 처음에 첫 번째 카드에는 , 두 번째 카드에는 가 적혀 있다.
플레이어는 자신의 카드로 행동을 한다. 카드에 적힌 정수를 각각 , 라고 하자. 플레이어는 먼저 정수 를 고른 뒤 다음 연산 중 하나를 수행한다.
- 첫 번째 카드의 정수를 로 바꾼다.
- 두 번째 카드의 정수를 로 바꾼다.
게임 중 카드에 적힌 정수의 절댓값은 을 넘어서는 안 된다. 그렇지 않으면 좋지 않은 일이 일어날 수 있다. 최대 50번의 행동을 수행한 뒤 카드 중 하나에 0이 적혀 있으면 그 플레이어가 이번 라운드에서 이긴다.
여러분은 이 게임을 하게 된다. 물론 이기고 싶을 것이다.
입력
입력의 유일한 줄에 카드에 처음 적힌 두 정수 와 가 주어진다 ().
출력
첫 줄에는 카드 중 하나에 0이 적히게 하려고 플레이어가 수행하려는 행동의 수 을 출력한다 (). 행동 수를 최소화할 필요는 없지만 50을 넘어서는 안 된다.
다음 개의 줄에는 각각 공백으로 구분된 두 정수 , 를 출력한다. 는 해당 행동의 종류, 는 해당 행동에서 고른 정수 이다.
유효한 답이 여러 개면 아무거나 출력해도 된다. 단, 게임 중 카드에 적힌 정수의 절댓값은 을 넘어서는 안 된다.
힌트
첫 번째 테스트에서는 행동 한 번이면 충분하다. 첫 번째 카드의 정수에 3을 곱한 값을 두 번째 카드의 정수에 더하면 된다.
두 번째 테스트에서는 첫 번째 행동 후 카드에 각각 과 이 적혀 있고, 두 번째 행동 후에는 과 이 적혀 있다.
세 번째 테스트에서 카드의 정수는 차례로 과 , 과 , 과 , 과 , 와 , 와 , 과 이다.