In a popular manager of windows, the following definition is used to mantain the information of the visible windows in the screen of the computer:

struct Rectangle {
int x_left, x_right, y_down, y_up;
};

Here, the rectangles have the parallel sides in the axes *x* and *y*,
and *x_left*, *x_right*, *y_down* and *y_up* are respectively
the minimal horitzontal coordenate,
the maxmal horitzontal coordenate,
the minimal vertical coordenate,
and the maximal vertical coordenate of each rectangle.

Write a procedure that reads a rectangle:

void read(Rectangle& r);

which is given in the input with the four integer numbers
*x_left*, *x_right*, *y_down* and *y_up* in this order.

Write also a function that indicates the relationship that
have two given rectangles *r1* and *r2*:

int relationship(const Rectangle& r1, const Rectangle& r2);

that must return 1 if *r* is inside *r2*,
2 if *r2* is inside *r1*,
3 if none is inside the other one but the rectangles intersect,
4 if the rectangles are identical,
and 0 otherwise (if the rectangles do not have ay point in common).

Suppose that two rectangles intersect
even if they coincide only in a segment or a point.
Moreover, suppose that all the rectangles are correctly formed,
that is, that *x_left* is strictly smaller than *x_right*,
and that *y_down* is srictly smaller than *y_up*.

Use these definitions and procedures to write a program that reads a series of pairs of rectangles, and for each one prints which relationship have.

Input

Input consists of a natural n, followed by n lines, each one with two rectangles (eight integer numbers).

Output

For each pair of rectangles, print their relationship as it is shown in the examples.

Public test cases

**Input**

6 2 3 4 6 0 5 2 8 0 10 0 10 9 10 0 1 0 2 0 2 1 3 1 3 -1 1 -2 2 -1 1 -2 2 0 1 0 2 5 7 4 7 0 2 0 2 2 4 2 4

**Output**

the first rectangle is inside the second one the second rectangle is inside the first one rectangles intersect rectangles are identical rectangles do not intersect rectangles intersect

Information

- Author
- Salvador Roura
- Language
- English
- Translator
- Carlos Molina
- Original language
- Catalan
- Other languages
- Catalan
- Official solutions
- C++
- User solutions
- C++