import
java.io.*;
import
java.util.*;
class
GFG {
public
static
boolean
isRationalEqual(String s,
String t)
{
Fraction f1 = Rational.parse(s).toFraction();
Fraction f2 = Rational.parse(t).toFraction();
return
f1.p * f2.q == f2.p * f1.q;
}
public
static
class
Rational {
private
final
String integer, nonRepeating,
repeating;
private
Rational(String integer,
String nonRepeating,
String repeating)
{
this
.integer = integer;
this
.nonRepeating = nonRepeating;
this
.repeating = repeating;
}
public
static
Rational parse(String s)
{
String[] parts = s.split(
"[.()]"
);
return
new
Rational(
parts.length >=
1
? parts[
0
] :
""
,
parts.length >=
2
? parts[
1
] :
""
,
parts.length >=
3
? parts[
2
] :
""
);
}
public
Fraction toFraction()
{
long
a = tenpow(nonRepeating.length());
long
i = Long.parseLong(integer + nonRepeating);
if
(repeating.length() ==
0
) {
return
new
Fraction(i, a);
}
else
{
long
b = tenpow(nonRepeating.length()
+ repeating.length());
long
j = Long.parseLong(
integer + nonRepeating + repeating);
return
new
Fraction(j - i, b - a);
}
}
public
String toString()
{
return
String.format(
"%s.%s(%s)"
, integer,
nonRepeating, repeating);
}
}
public
static
class
Fraction {
private
final
long
p, q;
private
Fraction(
long
p,
long
q)
{
this
.p = p;
this
.q = q;
}
public
String toString()
{
return
String.format(
"%d/%d"
, p, q);
}
}
public
static
long
tenpow(
int
x)
{
assert
x >=
0
;
long
r =
1
;
while
(--x >=
0
) {
r *=
10
;
}
return
r;
}
public
static
void
main(String[] args)
{
String S =
"0.(52)"
, T =
"0.5(25)"
;
if
(isRationalEqual(S, T)) {
System.out.println(
"YES"
);
}
else
{
System.out.println(
"NO"
);
}
}
}