1.0 200.0 200.0
 0.2 0.1 0.6
 1.9 3.0 4.1
 51.8 51.8 7.1
 113.9 125.2 88.8
 1.9 4.8 3.9
 2.2 148.1 138.0
 1.0 200.0 1.0
 1.7 4.5 4.2
 0.2 0.6 0.3
 200.0 200.0 0.1
 3.9 0.2 3.8
 7.0 131.1 7.4
 4.6 4.4 2.3
 2.0 1.1 2.4
 2.4 3.8 2.7
 0.1 0.5 0.2
 1.8 0.4 2.7
 1.1 1.1 1.1
 3.7 2.2 4.8
 3.9 2.1 4.5
 1.0 1.0 200.0
 104.6 184.4 82.3
 149.4 15.5 82.0
 0.5 0.5 0.6
 1.1 1.5 1.0
 0.3 0.4 0.4
 0.3 0.5 0.6
 0.2 0.2 0.5
 1.0 1.0 1.0
 0.2 0.7 0.6
 144.0 70.4 148.1
 25.9 77.0 144.8
 0.9 1.0 0.1
 0.5 0.3 0.2
 2.0 1.0 4.0
 4.0 2.0 1.0
 1.0 2.0 4.0
 0.5 0.5 0.1
 0.6 0.2 0.5
 185.9 9.6 163.4
 0.8 0.3 0.6
 200.0 1.0 200.0
 1.1 3.1 4.9
 3.7 3.7 4.1
 0.1 0.2 0.6
 1.5 1.3 0.1
 4.6 2.1 1.6
 0.1 200.0 0.1
 1.0 0.3 1.1
 0.3 0.3 0.5
 0.1 0.1 0.4
 55.5 159.4 140.3
 4.4 3.7 3.4
 200.0 1.0 1.0
 0.1 1.4 0.3
 1.4 0.5 0.8
 1.1 1.5 0.4
 51.5 156.3 145.1
 0.1 0.3 0.5
 153.9 122.1 89.5
 1.8 1.8 2.1
 0.5 0.1 0.9
 0.6 0.6 1.1
 4.6 3.0 3.4
 0.1 0.4 0.3
 0.6 0.3 0.2
 196.9 3.0 4.1
 3.0 3.0 3.1
 4.4 0.5 2.0
 4.5 1.3 4.8
 64.6 117.1 81.6
 117.4 68.8 137.7
 141.1 108.1 14.9
 81.7 171.9 4.4
 0.2 0.3 0.1
 156.9 154.8 73.9
 1.5 1.4 1.1
 0.4 1.1 0.9
 0.4 1.1 0.8
 0.1 200.0 200.0
 0.5 0.3 0.1
 1.0 2.0 1.0
 1.4 1.1 1.0
 0.7 1.4 0.4
 28.9 39.3 148.4
 1.7 1.9 4.4
 0.5 0.8 0.3
 200.0 0.1 0.1
 0.5 0.2 0.2
 0.6 0.4 0.3
 0.9 1.2 0.2
 4.3 2.4 4.9
 0.9 2.0 4.8
 189.4 63.7 63.4
 38.7 142.2 89.8
 0.3 0.4 0.1
 1.9 1.1 4.8
 0.4 0.1 0.6
 4.2 1.1 1.2
 1.5 1.7 2.5
 184.1 118.5 129.5
 200.0 200.0 200.0
 0.5 0.4 0.5
 1.2 0.7 1.3
 3.9 4.3 3.4
 193.9 40.7 19.7
 0.5 0.2 0.3
 36.9 51.1 4.8
 0.2 0.1 0.2
 0.2 0.6 0.4
 0.1 0.1 200.0
 0.9 4.6 3.4
 2.0 4.0 1.0
 0.2 0.3 0.2
 0.4 1.0 1.5
 1.4 1.2 1.4
 1.2 0.6 0.5
 2.0 2.1 2.2
 0.1 0.2 0.3
 0.8 0.4 1.4
 1.4 0.3 1.4
 4.0 1.0 2.0
 0.1 0.5 0.4
 0.4 0.2 0.3
 4.0 0.4 3.1
 200.0 0.1 200.0
 1.0 4.0 2.0
 0.3 0.4 1.2
 94.5 56.3 59.8
 1.4 0.8 0.9
 200.0 200.0 1.0
 1.4 0.8 0.2
 3.9 0.7 4.7
 144.6 103.0 193.4
 0.5 0.1 0.3
 0.1 0.4 0.2
 0.1 0.1 0.1
 1.2 0.5 1.2
 198.7 23.7 89.1
 139.3 87.4 129.9
 4.1 3.5 4.5
 2.2 3.1 3.0
 91.8 170.4 7.7
 41.7 104.5 74.2

y^z^x
 (z^x)^y
 x^y^z
 z^x^y
 z^x^y
 x^z^y
 x^z^y
 y^x^z
 x^z^y
 (y^x)^z
 (x^y)^z
 x^z^y
 x^z^y
 z^y^x
 (z^x)^y
 x^z^y
 (y^x)^z
 z^x^y
 (x^y)^z
 y^x^z
 y^x^z
 z^x^y
 z^x^y
 y^z^x
 (z^x)^y
 y^x^z
 (y^x)^z
 (z^x)^y
 (z^x)^y
 x^y^z
 (y^x)^z
 y^x^z
 x^y^z
 y^x^z
 (x^y)^z
 x^z^y
 x^y^z
 y^z^x
 (x^y)^z
 (x^y)^z
 y^z^x
 (x^y)^z
 x^z^y
 x^y^z
 x^y^z
 (z^x)^y
 x^y^z
 z^y^x
 y^x^z
 z^x^y
 (z^x)^y
 (z^x)^y
 x^z^y
 z^y^x
 x^y^z
 y^z^x
 x^z^y
 y^x^z
 x^z^y
 (z^x)^y
 z^y^x
 (z^x)^y
 (z^x)^y
 z^x^y
 y^z^x
 (y^x)^z
 (x^y)^z
 y^z^x
 x^y^z
 x^z^y
 y^x^z
 x^z^y
 y^x^z
 z^y^x
 z^x^y
 (y^x)^z
 z^y^x
 (x^y)^z
 y^z^x
 y^z^x
 (y^x)^z
 (x^y)^z
 y^x^z
 x^y^z
 y^x^z
 x^y^z
 x^y^z
 (y^x)^z
 x^y^z
 (x^y)^z
 (x^y)^z
 y^x^z
 y^x^z
 (y^x)^z
 z^y^x
 x^z^y
 (y^x)^z
 x^z^y
 (z^x)^y
 (x^y)^z
 (z^x)^y
 y^z^x
 x^y^z
 (x^y)^z
 z^x^y
 z^x^y
 z^y^x
 (x^y)^z
 z^x^y
 (x^y)^z
 (y^x)^z
 z^x^y
 (z^x)^y
 x^y^z
 (y^x)^z
 z^y^x
 (x^y)^z
 x^y^z
 x^z^y
 (z^x)^y
 z^x^y
 x^z^y
 x^z^y
 (y^x)^z
 (x^y)^z
 x^z^y
 (x^y)^z
 y^z^x
 z^y^x
 y^z^x
 x^z^y
 x^y^z
 x^y^z
 (x^y)^z
 y^x^z
 (x^y)^z
 (y^x)^z
 (x^y)^z
 x^z^y
 y^z^x
 y^z^x
 y^x^z
 x^z^y
 z^x^y
 x^z^y

#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
long long int leap(long long int x) {
  if ((x % 4 == 0 && x % 100 != 0) || x % 400 == 0) return 1;
  return 0;
}
long long int nCr(long long int n, long long int r) {
  if (r == 0)
    return 1;
  else
    return nCr(n - 1, r - 1) * n / r;
}
long long int mod(long long int N, long long int M) {
  long long int temp = N / M;
  N -= temp * M;
  return N;
}
long long int bigmod(long long int N, long long int M, long long int MOD) {
  if (M == 0) return 1;
  if ((M / 2) * 2 == M) {
    long long int ret = bigmod(N, M / 2, MOD);
    return ((ret % MOD) * (ret % MOD)) % MOD;
  } else
    return ((N % MOD) * bigmod(N, M - 1, MOD) % MOD) % MOD;
}
long long int modinverse(long long int a, long long int m) {
  return bigmod(a, m - 2, m);
}
struct Euclid {
  long long int x, y, d;
  Euclid(){};
  Euclid(long long int xx, long long int yy, long long int dd) {
    x = xx, y = yy, d = dd;
  }
};
Euclid Extended_gcd(long long int a, long long int b) {
  if (!b) return Euclid(1, 0, a);
  Euclid e = Extended_gcd(b, a % b);
  return Euclid(e.y, e.x - a / b * e.y, e.d);
}
long long int Set(long long int N, long long int pos) {
  return N | (1LL << pos);
}
long long int reset(long long int N, long long int pos) {
  return N & ~(1LL << pos);
}
long long int check(long long int N, long long int pos) {
  return (N & (1LL << pos));
}
int main() {
  long double x, y, z;
  cin >> x >> y >> z;
  long double fuckx = log(x);
  long double fucky = log(y);
  long double fuckz = log(z);
  vector<pair<long double, int> > vec;
  long double res;
  res = fuckx * pow(y, z);
  vec.push_back(make_pair(res, 1));
  res = fuckx * pow(z, y);
  vec.push_back(make_pair(res, 2));
  res = fuckx * y * z;
  vec.push_back(make_pair(res, 3));
  res = fuckx * y * z;
  vec.push_back(make_pair(res, 4));
  res = fucky * pow(x, z);
  vec.push_back(make_pair(res, 5));
  res = fucky * pow(z, x);
  vec.push_back(make_pair(res, 6));
  res = fucky * x * z;
  vec.push_back(make_pair(res, 7));
  res = fucky * x * z;
  vec.push_back(make_pair(res, 8));
  res = fuckz * pow(x, y);
  vec.push_back(make_pair(res, 9));
  res = fuckz * pow(y, x);
  vec.push_back(make_pair(res, 10));
  res = fuckz * x * y;
  vec.push_back(make_pair(res, 11));
  res = fuckz * x * y;
  vec.push_back(make_pair(res, 12));
  long double maxi = -INFINITY;
  int pos;
  for (int i = 0; i < 12; i++) {
    if (vec[i].first > maxi) {
      maxi = vec[i].first;
      pos = i + 1;
    }
  }
  if (pos == 1) cout << "x^y^z" << endl;
  if (pos == 2) cout << "x^z^y" << endl;
  if (pos == 3) cout << "(x^y)^z" << endl;
  if (pos == 4) cout << "(x^z)^y" << endl;
  if (pos == 5) cout << "y^x^z" << endl;
  if (pos == 6) cout << "y^z^x" << endl;
  if (pos == 7) cout << "(y^x)^z" << endl;
  if (pos == 8) cout << "(y^z)^x" << endl;
  if (pos == 9) cout << "z^x^y" << endl;
  if (pos == 10) cout << "z^y^x" << endl;
  if (pos == 11) cout << "(z^x)^y" << endl;
  if (pos == 12) cout << "(z^y)^x" << endl;
  return 0;
}
