TopCoder

User's AC Ratio

NaN% (0/0)

Submission's AC Ratio

NaN% (0/0)

Tags

Description


Math teacher Mr. Matsudaira is teaching expansion and factoring of polynomials to his students. Last week he instructed the students to write two polynomials (with a single variable x
), and to report GCM (greatest common measure) of them as a homework, but he found it boring to check their answers manually. So you are asked to write a program to check the answers.


Hereinafter, only those polynomials with integral coefficients, called integral polynomials, are considered.


When two integral polynomials A

and B
are given, an integral polynomial C
is a common factor of A
and B
if there are some integral polynomials X

and Y
such that A = CX
and B = CY

.


GCM of two integral polynomials is a common factor which has the highest degree (for x
, here); you have to write a program which calculates the GCM of two polynomials.


It is known that GCM of given two polynomials is unique when constant multiplication factor is ignored. That is, when C
and D
are both GCM of some two polynomials A

and B
, <!-- MATH
$p \times C = q \times D$
-->
p×C = q×D
for some nonzero integers p

and q
.

Input Format


The input consists of multiple datasets. Each dataset constitutes a pair of input lines, each representing a polynomial as an expression defined below.


  1. A primary is a variable x, a sequence of digits 0 - 9, or an expression enclosed within (... ). Examples: x, 99, (x+1).
  2. A factor is a primary by itself or a primary followed by an exponent. An exponent consists of a symbol ^ followed by a sequence of digits 0 - 9. Examples: x^05, 1^15, (x+1)^3.
  3. A term consists of one or more adjoining factors. Examples: 4x, (x+1)(x-2), 3(x+1)^2.
  4. An expression is one or more terms connected by either + or -. Additionally, the first term of an expression may optionally be preceded with a minus sign -. Examples: -x+1, 3(x+1)^2-x(x-1)^2.




Integer constants, exponents, multiplications (adjoining), additions (+) and subtractions/negations (-) have their ordinary meanings. A sequence of digits is always interpreted as an integer constant. For example, 99 means 99, not <!-- MATH
$9 \times 9.$
-->
9×9.


Any subexpressions of the input, when fully expanded normalized, have coefficients less than 100 and degrees of x
less than 10. Digit sequences in exponents represent non-zero values.


All the datasets are designed so that a standard algorithm with 32-bit two's complement integers can solve the problem without overflows.


The end of the input is indicated by a line containing a period.

Output Format


For each of the dataset, output GCM polynomial expression in a line, in the format below.




c0
x<!-- MATH
$p_{0}\pm c_{1}$
-->
p0±c1

x<!-- MATH
$p_{1} \cdots \pm c_{n}$
-->
p1 ... ±cn
x<SPAN CLASS="MATH">pn



Where ci
and pi
<!-- MATH
$(i = 0, \ldots, n)$
-->
(i = 0,..., n)

are positive integers with <!-- MATH
$p_{0} > p_{1} > \cdots > p_{n}$
-->
p0 > p1 > ... > pn

, and the greatest common divisor of <!-- MATH
${c_{i}| i = 0, \cdots, n}$
-->
{ci| i = 0, ... , n}
is 1.


Additionally:



  • When ci is equal to 1, it should be omitted unless corresponding pi is 0,
  • x^0 should be omitted as a whole, and
  • x^1 should be written as x.

Sample Input 1



-(x^3-3x^2+3x-1)
(x-1)^2
x^2+10x+25
x^2+6x+5
x^3+1
x-1
.



Sample Output 1



x^2-2x+1
x+5
1



Hints

Problem Source

Migrated from old NTUJ.

Aizu 2008

Subtasks

No. Testdata Range Score

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 10000 65536 200