Piegirl got bored with binary, decimal and other integer based counting systems. Recently she discovered some interesting properties about number <image>, in particular that q2 = 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 a0a1...an equals to <image>.

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

&lt;


Input

00100
11


Output

=


Input

110
101


Output

&gt;

Note

In the first example first number equals to <image>, while second number is approximately 1.6180339882 + 1.618033988 + 1 ≈ 5.236, which is clearly a bigger number.

In the second example numbers are equal. Each of them is  ≈ 2.618.
import java.io.FileNotFoundException;
import java.io.BufferedReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.File;
import java.io.Writer;
import java.util.List;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 * @author abra
 */
public class Main {
	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		OutputWriter out = new OutputWriter(outputStream);
		TaskA solver = new TaskA();
		solver.solve(1, in, out);
		out.close();
	}
}

class TaskA extends SimpleSavingChelperSolution {

	public void solve(int testNumber) {
		String sa = in.nextString();
		String sb = in.nextString();

		int MAX = 101000;

		long[] a = new long[MAX];
		long[] b = new long[MAX];

		for (int i = 0; i < sa.length(); i++) {
			a[i] = sa.charAt(sa.length() - 1 - i) == '1' ? 1 : 0;
		}
		for (int i = 0; i < sb.length(); i++) {
			b[i] = sb.charAt(sb.length() - 1 - i) == '1' ? 1 : 0;
		}

		for (int i = MAX - 1; i >= 0; i--) {
			long t = Stuff.min(a[i], b[i]);
			a[i] -= t;
			b[i] -= t;

			if (a[i] > 1000000000000L) {
				out.println(">");
				return;
			}
			if (b[i] > 1000000000000L) {
				out.println("<");
				return;
			}

			if (a[i] > 0 && i > 1) {
				a[i - 1] += a[i];
				a[i - 2] += a[i];
				a[i] = 0;
			}

			if (b[i] > 0 && i > 1) {
				b[i - 1] += b[i];
				b[i - 2] += b[i];
				b[i] = 0;
			}
		}

		debug.println(a[0] + " " + a[1]);
		debug.println(b[0] + " " + b[1]);

		double g = (Math.sqrt(5) + 1) / 2;

		double x = a[0] + a[1] * g;
		double y = b[0] + b[1] * g;

		if (Math.abs(x - y) < 1e-9) {
			out.println("=");
			return;
		}
		if (x < y) {
			out.println("<");
		} else {
			out.println(">");
		}
	}
}

abstract class SimpleSavingChelperSolution extends SavingChelperSolution {

	public String processOutputPreCheck(int testNumber, String output) {
		return output;
	}

	public String processOutputPostCheck(int testNumber, String output) {
		return output;
	}
}

class InputReader {

	BufferedReader br;
	StringTokenizer in;

	public InputReader(String fileName) {
		try {
			br = new BufferedReader(new FileReader(fileName));
		} catch (IOException e) {
			throw new RuntimeException(e);
		}
	}

	public InputReader(InputStream inputStream) {
		br = new BufferedReader(new InputStreamReader(inputStream));
	}

	boolean hasMoreTokens() {
		while (in == null || !in.hasMoreTokens()) {
			String s = nextLine();
			if (s == null) {
				return false;
			}
			in = new StringTokenizer(s);
		}
		return true;
	}

	public String nextString() {
		return hasMoreTokens() ? in.nextToken() : null;
	}

	public String nextLine() {
		try {
			in = null; // riad legacy
			return br.readLine();
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

}

class Stuff {

	public static long min(long... longs) {
		if (longs.length == 0) {
			throw new IllegalArgumentException("Arg must be non-empty");
		}

		long result = Long.MAX_VALUE;

		for (long aLong : longs) {
			result = Math.min(result, aLong);
		}

		return result;
	}


}

abstract class SavingChelperSolution {

	protected int testNumber;

	public InputReader in;
	public OutputWriter out;

	private OutputWriter toFile;

	private boolean local = new File("chelper.properties").exists();

	public OutputWriter debug = local
			? new OutputWriter(System.out)
			: new OutputWriter(new OutputStream() {
				@Override
				public void write(int b) {
				}
			});

	public SavingChelperSolution() {
		try {
			toFile = new OutputWriter("last_test_output.txt");
		} catch (FileNotFoundException e) {
			throw new RuntimeException(e);
		}
	}

	public abstract void solve(int testNumber);

	public abstract String processOutputPreCheck(int testNumber, String output);

	public abstract String processOutputPostCheck(int testNumber, String output);

	public void solve(int testNumber, InputReader in, OutputWriter out) {
		this.testNumber = testNumber;

		ByteArrayOutputStream substituteOutContents = new ByteArrayOutputStream();
		OutputWriter substituteOut = new OutputWriter(substituteOutContents);

		this.in = in;
		this.out = substituteOut;

		solve(testNumber);
		substituteOut.flush();

		String result = substituteOutContents.toString();

		result = processOutputPreCheck(testNumber, result);
		out.print(result);
		out.flush();

		if (local) {
			debug.flush();

			result = processOutputPostCheck(testNumber, result);
			toFile.print(result);
			toFile.flush();
		}
	}

}

class OutputWriter extends PrintWriter {

	public OutputWriter(String fileName) throws FileNotFoundException {
		super(fileName);
	}

	public OutputWriter(OutputStream outputStream) {
		super(outputStream);
	}

	public OutputWriter(Writer writer) {
		super(writer);
	}

}

