#include<bits/stdc++.h>
using namespace std;
string s,tmp;
int a,b,c,k,num=1;
double x1,x2;
void read(){
cin>>s;
a=1;s.erase(0,3);
int pos=s.find('x');
int len=s.size();
if(pos==-1)b=0;
else{
tmp=s.substr(0,pos);
if(tmp[0]=='+')k=1;
if(tmp[0]=='-')k=-1;
tmp.erase(0,1);
for(int i=tmp.size()-1;i>=0;i--){
b+=(tmp[i]-'0')*num;
num*=10;
}b*=k;
if(tmp.size()==0)b=1*k;
s.erase(0,pos+1);
}
if(pos==len)c=0;
else{
tmp=s;
if(tmp[0]=='+')k=1;
if(tmp[0]=='-')k=-1;
tmp.erase(0,1);num=1;
for(int i=tmp.size()-1;i>=0;i--){
c+=(tmp[i]-'0')*num;
num*=10;
}c*=k;
}
}
void calculate(){
x1=double((-b-sqrt(b*b-4*a*c))/2*a);
x2=double((-b+sqrt(b*b-4*a*c))/2*a);
x1*=-1;x2*=-1;
if(x2>x1)swap(x1,x2);
}
void print(){
if(x1==x2){
if(x1==0)cout<<"x";
else{
cout<<"(x";
if(x1>0) cout<<"+"<<x1<<")";
else cout<<"-"<<-x1<<")";
}cout<<"^2";
}else{
if(x1==0)cout<<"x";
else{
cout<<"(x";
if(x1>0) cout<<"+"<<x1<<")";
else cout<<"-"<<-x1<<")";
}
if(x2==0)cout<<"x";
else{
cout<<"(x";
if(x2>0) cout<<"+"<<x2<<")";
else cout<<"-"<<-x2<<")";
}
}
}
int main(){
read();
calculate();
print();
return 0;
}