Piegirl got bored with binary, decimal and other integer based counting systems. Recently she discovered some interesting properties about number $q = \frac{\sqrt{5} + 1}{2}$, in particular that q^2 = q + 1, and she thinks it would make a good base for her new unique system. She called it "golden system". In golden system the number is a non-empty string containing 0's and 1's as digits. The decimal value of expression a_0a_1...a_{n} equals to $\sum_{i = 0}^{n} a_{i} \cdot q^{n - i}$.

Soon Piegirl found out that this system doesn't have same properties that integer base systems do and some operations can not be performed on it. She wasn't able to come up with a fast way of comparing two numbers. She is asking for your help.

Given two numbers written in golden system notation, determine which of them has larger decimal value.


-----Input-----

Input consists of two lines — one for each number. Each line contains non-empty string consisting of '0' and '1' characters. The length of each string does not exceed 100000.


-----Output-----

Print ">" if the first number is larger, "<" if it is smaller and "=" if they are equal.


-----Examples-----
Input
1000
111

Output
<

Input
00100
11

Output
=

Input
110
101

Output
>



-----Note-----

In the first example first number equals to $((\sqrt{5} + 1) / 2)^{3} \approx 1.618033988^{3} \approx 4.236$, while second number is approximately 1.618033988^2 + 1.618033988 + 1 ≈ 5.236, which is clearly a bigger number.

In the second example numbers are equal. Each of them is  ≈ 2.618.

Difficulty: interview

Starter code:

Solutions:
u = v = 0
a, b = input(), input()
n, m = len(a), len(b)
if n > m: b = '0' * (n - m) + b
else: a = '0' * (m - n) + a
for i in range(max(n, m)):
    u, v = v + u, u + int(a[i]) - int(b[i])
    if u > 1:
        print('>')
        return
    elif u < -1:
        print('<')
        return
d = 2 * v + u
if u == v == 0: print('=')
elif u >= 0 and d >= 0: print('>')
elif u <= 0 and d <= 0: print('<')
else: print('>' if (u * u > v * (v + u)) ^ (u < 0) else '<')

from itertools import dropwhile, chain


def main():
    zeroes = lambda a: not a
    a, b = [list(chain([0, 0], dropwhile(zeroes, list(map(int, input())))))
            for _ in range(2)]

    def tofib(l):
        i = 0
        while i < len(l) - 1:
            if l[i] > 0 and l[i + 1] > 0:
                l[i] -= 1
                l[i + 1] -= 1
                l[i - 1] += 1
                i -= 3
            i += 1
        return l

    a = list(dropwhile(zeroes, tofib(a)))
    b = list(dropwhile(zeroes, tofib(b)))

    if len(a) < len(b):
        print('<')
        return
    if len(a) > len(b):
        print('>')
        return
    for i in range(len(a)):
        if a[i] < b[i]:
            print('<')
            return
        if a[i] > b[i]:
            print('>')
            return
    print('=')


def __starting_point():
    main()


__starting_point()

u = v = 0
a, b = input(), input()
n, m = len(a), len(b)
if n > m: b = '0' * (n - m) + b
else: a = '0' * (m - n) + a
for i in range(max(n, m)):
    u, v = v + u, u + int(a[i]) - int(b[i])
    if u > 1:
        print('>')
        return
    elif u < -1:
        print('<')
        return
d = 2 * v + u
if u == v == 0: print('=')
elif u >= 0 and d >= 0: print('>')
elif u <= 0 and d <= 0: print('<')
else: print('>' if (u * u > v * (v + u)) ^ (u < 0) else '<')

u = v = 0

a, b = input(), input()

n, m = len(a), len(b)

if n > m: b = '0' * (n - m) + b

else: a = '0' * (m - n) + a

for i in range(max(n, m)):

    u, v = v + u, u + int(a[i]) - int(b[i])

    if u > 1:

        print('>')

        return

    elif u < -1:

        print('<')

        return

d = 2 * v + u

if u == v == 0: print('=')

elif u >= 0 and d >= 0: print('>')

elif u <= 0 and d <= 0: print('<')

else: print('>' if (u * u > v * (v + u)) ^ (u < 0) else '<')



# Made By Mostafa_Khaled


from sys import stdin
s=list(stdin.readline().strip()[::-1])
s1=list(stdin.readline().strip()[::-1])
def trans(s):
    s.append("0")
    i=len(s)-1
    while i>1:
        while i>=len(s):
            s.append("0")
        if s[i-1]=="1" and s[i-2]=="1":
            s[i]="1"
            s[i-1]="0"
            s[i-2]="0"
            i+=2
        else:
            i-=1
    while len(s)>0 and s[-1]=="0":
        s.pop()
    return s
s=trans(s)
s1=trans(s1)
for i in range(min(len(s),len(s1))):
    if s[i]==s1[i]:
        s[i]="0"
        s1[i]="0"
while len(s)>0 and s[-1]=="0":
    s.pop()
while len(s1)>0 and s1[-1]=="0":
    s1.pop()
if len(s)==len(s1):
    print("=")
elif(len(s)>len(s1)):
    print(">")
else:
    print("<")


def clean(d):
    ans = ['0']
    for c in list(d):
        ans.append(c)
        i = len(ans) - 1 #find last index
        while i > 1 and ans[i-2]== '0' and ans[i - 1] == '1' and ans[i] == '1':
            ans[i - 2] = '1'
            ans[i - 1] = '0'
            ans[i] = '0'
            i -= 2
    return ''.join(ans).lstrip('0')

a = clean(input())
b = clean(input())
#print(a)
#print(b)
if a == b:
    print('=')
elif len(a) > len(b):
    print('>')
elif len(a) < len(b):
    print('<')
elif a > b: # now the length are equal
    print('>')
else:
    print('<')