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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.lang.String;
import java.util.Scanner;

public class D {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner reader = new Scanner(System.in);
		PrintWriter writer= new PrintWriter(System.out);
		String line = reader.nextLine();
		String[] strs = line.split("\\s+");
		double[] para = new double[3];
		for(int j = 0; j <3; j++){
			for(int i = 0; i <strs[j].length()-1;i++){
				if(strs[j].charAt(i) == '.'){
					int k = Integer.parseInt(strs[j].substring(i+1));
					int q = Integer.parseInt(strs[j].substring(0, i));
					para[j] = q + k/10.0;
				}
			}
		}
		double x = para[0];
		double y = para[1];
		double z = para[2];
		String[] result = new String[] {"x^y^z", "x^z^y", "(x^y)^z", "y^x^x", "y^z^x", "(y^x)^z", "z^x^y", "z^y^x", "(z^x)^y"};
		if(x <= 1&&y<=1&&z<=1) writer.println(result[ThreeSmall(x,y,z)-1]);
		if(x > 1 && y>1 && z>1) writer.println(result[ThreeBig(x,y,z)-1]);
		if(x <= 1 && y> 1 && z>1){
			double[] compare = new double[6];
			compare[0] = z*Math.log(x)+Math.log(Math.log(y));
			compare[1] = x*Math.log(z)+Math.log(Math.log(y));
			compare[2] = Math.log(x*z)+Math.log(Math.log(y));
			compare[3] = y*Math.log(x) + Math.log(Math.log(z));
			compare[4] = x*Math.log(y) + Math.log(Math.log(z));
			compare[5] = Math.log(x*y) + Math.log(Math.log(z));
			int index = 0;
			double max = compare[0];
			for(int i = 1; i < 6; i++){
				if(compare[i] > max){
					max = compare[i];
					index = i;
				}
			}
			writer.println(result[index+3]);
		}
		if(y <= 1 && x> 1 && z>1){
			double[] compare = new double[6];
			compare[0] = z*Math.log(y)+Math.log(Math.log(x));
			compare[1] = y*Math.log(z)+Math.log(Math.log(x));
			compare[2] = Math.log(y*z)+Math.log(Math.log(x));
			compare[3] = y*Math.log(x) + Math.log(Math.log(z));
			compare[4] = x*Math.log(y) + Math.log(Math.log(z));
			compare[5] = Math.log(x*y) + Math.log(Math.log(z));
			int index = 0;
			double max = compare[0];
			for(int i = 1; i < 6; i++){
				if(compare[i] > max){
					max = compare[i];
					index = i;
				}
			}
			if(index < 3) writer.println(result[index]);
			else writer.println(result[index+3]);
		}
		if(z<=1 &&x>1&&y>1){
			double[] compare = new double[6];
			compare[0] = z*Math.log(y)+Math.log(Math.log(x));
			compare[1] = y*Math.log(z)+Math.log(Math.log(x));
			compare[2] = Math.log(y*z)+Math.log(Math.log(x));
			compare[3] = z*Math.log(x) + Math.log(Math.log(y));
			compare[4] = x*Math.log(z) + Math.log(Math.log(y));
			compare[5] = Math.log(x*z) + Math.log(Math.log(y));
			int index = 0;
			double max = compare[0];
			for(int i = 1; i < 6; i++){
				if(compare[i] > max){
					max = compare[i];
					index = i;
				}
			}
			writer.println(result[index]);
		}
		if(x<=1&&y<=1&&z>1){
			double mot = Math.pow(x,y)*Math.log(z);
			double hai = Math.pow(y,x)*Math.log(z);
			double ba = y*x*Math.log(z);
			if(mot >= hai && mot >= ba) writer.println(result[6]);
			else if(hai >= ba) writer.println(result[7]);
			else writer.println(result[8]);
			
		}
		if(x<=1 &&z<=1&&y>1){
			double mot = Math.pow(x,z)*Math.log(y);
			double hai = Math.pow(z,x)*Math.log(y);
			double ba = z*x*Math.log(y);
			if(mot >= hai && mot >= ba) writer.println(result[3]);
			else if(hai >= ba) writer.println(result[4]);
			else writer.println(result[5]);
			//writer.println(result[oneBig2small(y,z,x)-1+3]);
		}
		if(x>1&&y<=1&&z<=1){
			double mot = Math.pow(y,z)*Math.log(x);
			double hai = Math.pow(z,y)*Math.log(x);
			double ba = z*y*Math.log(x);
			if(mot >= hai && mot >= ba) writer.println(result[0]);
			else if(hai >= ba) writer.println(result[1]);
			else writer.println(result[2]);
		}
		
		//writer.println(x+" "+y+" "+z);
		reader.close();
		
		writer.flush();
		writer.close();
		
	}
	
	static int oneSmall2big(double x, double y, double z){//x is small
		double[] compare = new double[6];
		compare[0] = z*Math.log(x)+Math.log(Math.log(y));
		compare[1] = x*Math.log(z)+Math.log(Math.log(y));
		compare[2] = Math.log(x*z)+Math.log(Math.log(y));
		compare[3] = y*Math.log(x) + Math.log(Math.log(z));
		compare[4] = x*Math.log(y) + Math.log(Math.log(z));
		compare[5] = Math.log(x*y) + Math.log(Math.log(z));
		int result = 0;
		double max = compare[0];
		for(int i = 1; i < 6; i++){
			if(compare[i] > max){
				max = compare[i];
				result = i;
			}
		}
		return result+1;
	}
	
	static int oneBig2small(double x, double y, double z){//x is big
		double mot = Math.pow(y,z)*Math.log(x);
		double hai = Math.pow(z, y)*Math.log(x);
		double ba = y*z*Math.log(x);
		if(mot >= hai && mot >= ba) return 1;
		else if(hai >= ba) return 2;
		else return 3;
	}
	
	static int ThreeBig(double x, double y, double z){
		double[] compare = new double[9];
		compare[0] = z*Math.log(y)+Math.log(Math.log(x));
		compare[1] = y*Math.log(z)+Math.log(Math.log(x));
		compare[2] = Math.log(y*z)+Math.log(Math.log(x));
		compare[3] = z*Math.log(x) + Math.log(Math.log(y));
		compare[4] = x*Math.log(z) + Math.log(Math.log(y));
		compare[5] = Math.log(x*z) + Math.log(Math.log(y));
		compare[6] = y*Math.log(x) + Math.log(Math.log(z));
		compare[7] = x*Math.log(y) + Math.log(Math.log(z));
		compare[8] = Math.log(x*y) + Math.log(Math.log(z));
		int result = 0;
		double max = compare[0];
		for(int i = 1; i < 9; i++){
			if(compare[i] > max){
				max = compare[i];
				result = i;
			}
		}
		return result+1;
	}
	
	static int ThreeSmall(double x, double y, double z){
		double[] compare = new double[9];
		compare[0] = Math.pow(x, Math.pow(y, z));
		compare[1] = Math.pow(x, Math.pow(z, y));
		compare[2] = Math.pow(x, y*z);
		compare[3] = Math.pow(y,  Math.pow(z, x));
		compare[4] = Math.pow(y,  Math.pow(x, z));
		compare[5] = Math.pow(y, x*z);
		compare[6] = Math.pow(z,  Math.pow(x,  y));
		compare[7] = Math.pow(z,  Math.pow(y,  x));
		compare[8] = Math.pow(z,  x*y);
		int result = 0;
		double max = compare[0];
		for(int i = 1; i < 9; i++){
			if(compare[i] > max){
				max = compare[i];
				result = i;
			}
		}
		return result+1;
	}

}
