To solve this exercise you will need the definitions and the procedures of problems P46254, P84786 and P39799.

Write a function that prints the relationship that
have two given circles *c1* and *c2*:

int relationship(const Circle& c1, const Circle& c2);

Your function must return 1 if *c1* is inside *c2*,
2 if *c2* is inside *c1*,
3 if any circle in inside the other one but the circles intersect,
and 0 otherwise (if the circles do not have any point in common).

Suppose that will never happen any of these extrem cases:

- The two circles intersect in a point.
- A circle is inside the other one, but shares a point with the border of the bigger circle.
- The two circles are equal.

Write a program that reads initial circles *c1* and *c2*,
followed by a series of orders,
and prints which relationship have *c1* and *c2* in each step
as it is shown in the examples.

Input

Input starts with two lines, one for *c1*, and the other one for *c2*,
each one with three reals (the third the radius, strictly positive).
Then a sequence of lines comes,
each one of them starts with an integer *i* and an order *s*:
*i* is 1 or 2, i indicates which circle must apply the order to;
*s* is “move” or “scale”.
If *s* is “move”,
then two reals that indicate the increase of the coordinates come.
If *s* is “scale”,
then a real strictly positive that indicates scale factor comes.

Output

Your program must print the relationship between the two circles at the beginning and in each step, as it is shown in the instance.

Public test cases

**Input**

0 0 5 1 1 2 2 scale 10 1 move 20 0.5 2 move -5 -10

**Output**

the second circle is inside the first one the first circle is inside the second one circles intersect circles do not intersect

Information

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