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

//package round341x;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.InputMismatchException;

public class D {
	InputStream is;
	PrintWriter out;
	String INPUT = "";
	
	void solve()
	{
		long x = Math.round(nd()*10);
		long y = Math.round(nd()*10);
		long z = Math.round(nd()*10);
		String[] rep = {
				"x^y^z",
				"x^z^y",
				"(x^y)^z",
				"y^x^z",
				"y^z^x",
				"(y^x)^z",
				"z^x^y",
				"z^y^x",
				"(z^x)^y"
		};
		long[][] s = new long[9][];
		s[0] = new long[]{1, x, y, z};
		s[1] = new long[]{2, x, z, y};
		s[2] = new long[]{3, x, y, z};
		s[3] = new long[]{5, y, x, z};
		s[4] = new long[]{6, y, z, x};
		s[5] = new long[]{7, y, x, z};
		s[6] = new long[]{9, z, x, y};
		s[7] = new long[]{10, z, y, x};
		s[8] = new long[]{11, z, x, y};
		
		int argmax = 0;
		for(int i = 1;i < 9;i++){
			if(argmax % 3 != 2 && i % 3 != 2){
				int cc = comp(
						s[argmax][1], s[argmax][2], s[argmax][3],
						s[i][1], s[i][2], s[i][3]
								);
				if(cc < 0){
					argmax = i;
				}
			}else if(argmax % 3 != 2 && i % 3 == 2){
				int cc = compa(
						s[argmax][1], s[argmax][2], s[argmax][3],
						s[i][1], s[i][2], s[i][3]
								);
				if(cc < 0){
					argmax = i;
				}
			}else if(argmax % 3 == 2 && i % 3 != 2){
				int cc = compa(
						s[i][1], s[i][2], s[i][3],
						s[argmax][1], s[argmax][2], s[argmax][3]
								);
				if(cc > 0){
					argmax = i;
				}
			}else{
				int cc = comp(
						s[argmax][1], s[argmax][2]*s[argmax][3],
						s[i][1], s[i][2]*s[i][3]
								);
				if(cc < 0){
					argmax = i;
				}
			}
		}
		out.println(rep[argmax]);
	}
	
	// (y/10)^(z/10) (z/10)^(y/10)
	int comp(long y, long z)
	{
		if(y == z)return 0;
		double la = z*(Math.log10(y)-1);
		double lb = y*(Math.log10(z)-1);
		if(Math.abs(la-lb) > 1E-8){
			return Double.compare(la, lb);
		}
		// y=20,z=40,..
		return 0;
	}
	
	int comp(long a, long b, long c, long d)
	{
		if(a == c && b == d)return 0;
		if(a == 10 && c == 10)return 0;
		if(a >= 10 && c <= 10)return 1;
		if(a <= 10 && c >= 10)return -1;
		double la = b*(Math.log10(a)-1);
		double lb = d*(Math.log10(c)-1);
		if(Math.abs(la-lb) > 1E-8){
			return Double.compare(la, lb);
		}
		
//		if(a % c == 0 || c % a == 0){
//			
//		}else{
//			tr(a, b, c, d);
//		}
		return 0;
	}
	
	int comp(long a, long b, long c, long d, long e, long f)
	{
		if(a == 10 && d == 10)return 0;
		if(a == d && b == e && c == f)return 0;
		if(a == d){
			int co = comp(b, c);
			if(a < 10)return -co;
			return co;
		}
		if(a <= 10 && d >= 10)return -1;
		if(a >= 10 && d <= 10)return 1;
		if(a > 10 && d > 10){
			double la = c/10.*(Math.log10(b)-1)+Math.log10(Math.log10(a)-1);
			double lb = f/10.*(Math.log10(e)-1)+Math.log10(Math.log10(d)-1);
			if(Math.abs(la-lb) > 1E-8){
				return Double.compare(la, lb);
			}
		}else{
			double la = c/10.*(Math.log10(b)-1)+Math.log10(1-Math.log10(a));
			double lb = f/10.*(Math.log10(e)-1)+Math.log10(1-Math.log10(d));
			if(Math.abs(la-lb) > 1E-8){
				return -Double.compare(la, lb);
			}
		}
		// (a/10)^((b/10)^(c/10))
		// ((b/10)^(c/10))(log a-1)
		// (c/10)(log b-1)+log(log a - 1)
//		tr(a, b, c, d, e, f);
		// not come here
		return 0;
	}
	
	// (a/10)^((b/10)^(c/10))
	// (d/10)^(e/10*f/10)
	// (ef/100)*(log d-1)
	// (log(ef)-2)+log(log d-1)
	int compa(long a, long b, long c, long d, long e, long f)
	{
		if(a == 10 && d == 10)return 0;
//		if(a == d){
//			int co = compa(b, c, e, f);
//			if(a < 10)return -co;
//			return co;
//		}
		if(a <= 10 && d >= 10)return -1;
		if(a >= 10 && d <= 10)return 1;
		if(a > 10 && d > 10){
			double la = c/10.*(Math.log10(b)-1)+Math.log10(Math.log10(a)-1);
			double lb = (Math.log10(e*f)-2)+Math.log10(Math.log10(d)-1);
			if(Math.abs(la-lb) > 1E-8){
				return Double.compare(la, lb);
			}
		}else{
			double la = c/10.*(Math.log10(b)-1)+Math.log10(1-Math.log10(a));
			double lb = (Math.log10(e*f)-2)+Math.log10(1-Math.log10(d));
			if(Math.abs(la-lb) > 1E-8){
				return -Double.compare(la, lb);
			}
		}
		// (a/10)^((b/10)^(c/10))
		// ((b/10)^(c/10))(log a-1)
		// (c/10)(log b-1)+log(log a - 1)
//		tr(a, b, c, d, e, f);
		return 0;
	}
	
	void run() throws Exception
	{
		is = oj ? System.in : new ByteArrayInputStream(INPUT.getBytes());
		out = new PrintWriter(System.out);
		
		long s = System.currentTimeMillis();
		solve();
		out.flush();
		tr(System.currentTimeMillis()-s+"ms");
	}
	
	public static void main(String[] args) throws Exception { new D().run(); }
	
	private byte[] inbuf = new byte[1024];
	private int lenbuf = 0, ptrbuf = 0;
	
	private int readByte()
	{
		if(lenbuf == -1)throw new InputMismatchException();
		if(ptrbuf >= lenbuf){
			ptrbuf = 0;
			try { lenbuf = is.read(inbuf); } catch (IOException e) { throw new InputMismatchException(); }
			if(lenbuf <= 0)return -1;
		}
		return inbuf[ptrbuf++];
	}
	
	private boolean isSpaceChar(int c) { return !(c >= 33 && c <= 126); }
	private int skip() { int b; while((b = readByte()) != -1 && isSpaceChar(b)); return b; }
	
	private double nd() { return Double.parseDouble(ns()); }
	private char nc() { return (char)skip(); }
	
	private String ns()
	{
		int b = skip();
		StringBuilder sb = new StringBuilder();
		while(!(isSpaceChar(b))){ // when nextLine, (isSpaceChar(b) && b != ' ')
			sb.appendCodePoint(b);
			b = readByte();
		}
		return sb.toString();
	}
	
	private char[] ns(int n)
	{
		char[] buf = new char[n];
		int b = skip(), p = 0;
		while(p < n && !(isSpaceChar(b))){
			buf[p++] = (char)b;
			b = readByte();
		}
		return n == p ? buf : Arrays.copyOf(buf, p);
	}
	
	private char[][] nm(int n, int m)
	{
		char[][] map = new char[n][];
		for(int i = 0;i < n;i++)map[i] = ns(m);
		return map;
	}
	
	private int[] na(int n)
	{
		int[] a = new int[n];
		for(int i = 0;i < n;i++)a[i] = ni();
		return a;
	}
	
	private int ni()
	{
		int num = 0, b;
		boolean minus = false;
		while((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'));
		if(b == '-'){
			minus = true;
			b = readByte();
		}
		
		while(true){
			if(b >= '0' && b <= '9'){
				num = num * 10 + (b - '0');
			}else{
				return minus ? -num : num;
			}
			b = readByte();
		}
	}
	
	private long nl()
	{
		long num = 0;
		int b;
		boolean minus = false;
		while((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'));
		if(b == '-'){
			minus = true;
			b = readByte();
		}
		
		while(true){
			if(b >= '0' && b <= '9'){
				num = num * 10 + (b - '0');
			}else{
				return minus ? -num : num;
			}
			b = readByte();
		}
	}
	
	private boolean oj = System.getProperty("ONLINE_JUDGE") != null;
	private void tr(Object... o) { if(!oj)System.out.println(Arrays.deepToString(o)); }
}
