#include <bits/stdc++.h>
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int dx[8] = {1, -1, 0, 0, -1, -1, 1, 1};
int dy[8] = {0, 0, -1, 1, -1, 1, -1, 1};
vector<int> adj[300010];
set<pair<int, int>> st;
vector<int> par(200010, -1);
vector<int> dis(200010, 998244353);
vector<int> cnt(200010, 0);
int gcd(int a, int b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  string str1, str2;
  cin >> str1 >> str2;
  int maxi = max((int)str1.length(), (int)str2.length());
  vector<long long> v(maxi + 1, 0);
  int k = maxi - 1;
  for (int i = (int)str1.length() - 1; i >= 0; i--) {
    if (str1[i] == '1') {
      v[k] = 1;
    }
    k--;
  }
  k = maxi - 1;
  for (int i = (int)str2.length() - 1; i >= 0; i--) {
    if (str2[i] == '1') {
      v[k] += -(long long)1;
    }
    k--;
  }
  for (int i = 0; i < maxi - 2; i++) {
    long long a;
    if (__builtin_add_overflow(v[i + 1], v[i], &a) == true) {
      if (v[i] > 0)
        cout << ">" << '\n';
      else
        cout << "<" << '\n';
      return 0;
    }
    if (__builtin_add_overflow(v[i + 2], v[i], &a) == true) {
      if (v[i] > 0)
        cout << ">" << '\n';
      else
        cout << "<" << '\n';
      return 0;
    }
    v[i + 1] += v[i];
    v[i + 2] += v[i];
  }
  long double cons = (sqrt(5) + 1) / 2.0;
  if (maxi == 1) {
    if (v[0] == 0)
      cout << "=" << '\n';
    else if (v[0] < 0)
      cout << "<" << '\n';
    else
      cout << ">" << '\n';
    return 0;
  }
  if (v[maxi - 2] == (-v[maxi - 1]) / cons)
    cout << "=" << '\n';
  else if (v[maxi - 2] > (-v[maxi - 1]) / cons)
    cout << ">" << '\n';
  else
    cout << "<" << '\n';
}
