Barica is an unusual frog. She lives in a pond where plants float on the surface of the water. The
plants are numbered
through
. When viewing from above, the location of each plant is given by a
pair of coordinates. What makes Barica unusual is her fear of jumping diagonally and in the negative
direction. More precisely, she can jump from a plant at coordinates
to another at coordinates
only if:
and
, or
and
For each plant, we know the number of flies in its immediate vicinity. Barica can use her swift tongue to eat all flies near the plant she is at.
Barica absorbs one energy unit for each fly she eats, and uses energy units for each jump she makes.
Barica can not make a jump if she doesn't have enough energy units beforehand.
Barica wants to go from plant to plant
and have the largest amount of energy possible after
arriving. Barica initially has no energy and must gather energy for her first jump from the flies around
plant
.
Find the sequence of plants Barica should travel to achieve her goal.
Input Specification
The first line of input contains two integers and
separated by a
space.
Each of the following lines contains three integers
,
and
separated by spaces, meaning that there is a plant at coordinates
with
flies around it.
The first plant in the input is plant , the second is plant
etc.
No two plants will share the same pair of coordinates.
Note: The input data will guarantee that a sequence of jumps, although not necessarily unique, will always exist.
Output Specification
Output the final energy level on the first line.
Output an integer , the number of plants Barica should travel, including plants
and
.
On the following lines, output the sequence of plants Barica should travel.
Sample Input 1
6 5
1 1 5
2 1 5
1 2 4
2 3 5
3 2 30
3 3 5
Sample Output 1
5
4
1 1
2 1
2 3
3 3
Sample Input 2
8 10
1 1 15
2 2 30
1 2 8
2 1 7
3 2 8
2 3 7
4 2 100
3 3 15
Sample Output 2
36
5
1 1
1 2
2 2
3 2
3 3
Sample Input 3
9 5
5 5 10
6 5 2
7 5 1
5 6 2
6 6 6
7 6 2
5 7 1
6 7 2
7 7 1
Sample Output 3
2
3
5 5
7 5
7 7
Comments