Finding the shortest route is a truck driver's everyday task: driving the shortest route saves money. Knowing alternative routes of the same length also matters, in case a route becomes unavailable — for example, due to road works.
To describe a region, we model its map. Triangular and rectangular grids turned out to be insufficient, so we use hexagons instead. On a regular hexagonal grid (like a honeycomb), we number the cells starting from 1 at any chosen cell and spiralling outward. Each cell then has a unique number, and every positive integer names exactly one cell.

Two cells are neighbours if and only if they share a side. In an infinite grid, every cell has exactly six neighbours; for example, cell 2 neighbours cells 1, 3, 7, 8, 9 and 10. A hexagonal route is a non-empty sequence of cells in which every cell except the last is a neighbour of the next one. A route from cell $X$ to cell $Y$ starts at $X$ and ends at $Y$. Its length is the number of cells minus one — the number of steps taken along the route.
For two cells, determine the length of the shortest route between them and the number of distinct routes of that length. Two routes are distinct if they differ in at least one cell; they need not be disjoint.
The input contains several queries, one per line. Each line holds two integers $X$ and $Y$ separated by a space, with $1 \le X, Y \le 10^6$ and $X \ne Y$, naming two different cells. A final line containing two zeros terminates the input and is not a query.
For each query, print one line:
There are N routes of the shortest length L.
where $L$ is the shortest route length between cells $X$ and $Y$, and $N$ is the number of distinct routes of that length. If there is exactly one such route, write is and route instead of are and routes.