#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<iomanip>
#include<cstdio>
#include<vector>
#include<ctime>
#include<cmath>
#include<map>
using namespace std;
double x,y,z;
double t[100];
string s[100]={
"",
"x^y^z",
"x^z^y",
"(x^y)^z",
"(x^z)^y",
"y^x^z",
"y^z^x",
"(y^x)^z",
"(y^z)^x",
"z^x^y",
"z^y^x",
"(z^x)^y",
"(z^y)^x"
};
double maxx;
int maxi;
int main(){
cin>>x>>y>>z;
t[1]=pow(x,pow(y,z));
t[2]=pow(x,pow(z,y));
t[3]=pow(pow(x,y),z);
t[4]=pow(pow(x,z),y);
t[5]=pow(y,pow(x,z));
t[6]=pow(y,pow(z,x));
t[7]=pow(pow(y,x),z);
t[8]=pow(pow(y,z),x);
t[9]=pow(z,pow(x,y));
t[10]=pow(z,pow(y,x));
t[11]=pow(pow(z,x),y);
t[12]=pow(pow(z,y),x);
for(int i=1;i<=12;i++){
if(t[i]>maxx){
maxx=t[i];
maxi=i;
}
}
cout<<s[maxi]<<endl;
return 0;
}
别问为啥不用 log
不会