The Tower of Hanoi consists of disks arranged in three piles numbered
,
, and
.
The disks all have distinct sizes, with disk
being the smallest and disk
being the largest.
Larger disks cannot be placed on top of smaller disks.
An arrangement of the disks can thus be represented uniquely by a sequence of
digits, each being
,
, or
, such that the
digit represents the pile where disk
is located.
A legal move consists of taking a single disk from the top of one pile, and placing it at the top of a different pile, such that the result is a valid arrangement.
That is, a larger disk cannot be placed on top of a smaller disk.
A move can be represented by two integers and
, where the corresponding move takes the disk at the top of pile
and places it at the top of pile
.
Initially, all disks are in pile .
You are given
distinct arrangements, and must find a sequence of legal moves that visits all
arrangements, in any order.
It is permitted to visit an arrangement more than once.
The sequence does not need to be optimal.
However, it can have at most
moves.
Constraints
The arrangements are distinct.
Subtask 1 [20%]
Subtask 2 [20%]
Subtask 3 [50%]
Subtask 4 [10%]
No additional restrictions.
Input Specification
The first line contains two space-separated integers and
.
The next lines each contain a string of
digits, representing the arrangements to be visited.
Output Specification
The first line of output should contain an integer , the number of moves.
Recall that
may be at most
.
The next lines should each contain two integers
and
, representing a legal move.
Sample Input
3 2
131
132
Sample Output
6
1 2
1 3
2 1
1 3
1 2
3 1
Comments