#include <bits/stdc++.h>
using namespace std;
//分别为二次项,一次项,常数项的系数
double a = 0, b = 0, c = 0;
int pos = -1; //等号位置
int main() {
    string s;
    while (getline(cin, s)) {
        //1.找到等号的位置
        for (int i = 0; i < s.length(); i++) {
            if (s[i] == '=') {
                pos = i;
                break;
            }
        }
        //2.判断一下开头和等号后面系数是不是负的,如果是正的就应该加个正号
        if (s[0] != '-') {
            s.insert(0, 1, '+');
            pos++;
        }
        if (s[pos + 1] != '-') s.insert(pos + 1, 1, '+');
        //3.将等号右边的移项到左边
        for (int i = pos + 1; i < s.length(); i++) {
            if (s[i] == '+') s[i] = '-';
            else if (s[i] == '-') s[i] = '+';
        }
        //4.将等于号去掉
        s.erase(pos, 1);
        //5.进行遍历,统计各次系数
        for (int i = 0; i < s.length();) {
            bool fushu = 0;//默认不是负数
            if (s[i] == '+' || s[i] == '-') {
                //判断一下符号
                if (s[i] == '-') fushu = 1;//是负数
                i++;
                //如果符号紧跟的是数字,这个数字可以是任何次项的系数
                if (isdigit(s[i])) {
                    string xishu = "";
                    if (isdigit(s[i])) {
                        //先统计系数
                        while (isdigit(s[i]) && i < s.length()) {
                            xishu += s[i];
                            i++;
                        }
                        if (fushu == 1) xishu.insert(0, 1, '-');
                        //到尾巴了,或者接着的是符号,则一定是常数项的系数
                        if (i == s.length() || s[i] == '+' || s[i] == '-')
                            c += stoi(xishu);
                        else {
                            //系数紧接着是x,不能确定是一次还是二次
                            if (s[i] == 'x') {
                                if (i < s.length() - 1) {
                                    i++;
                                    //如果x紧接着是^,那就是二次的系数
                                    if (s[i] == '^') {
                                        a += stoi(xishu);
                                        i += 2;//跳过^2
                                    } else { //否则就是一次的系数
                                        b += stoi(xishu);
                                    }
                                }
                            }
                        }
                    }
                }
                //如果符号紧跟的是x,只可能是一次或者二次的系数,且系数一定是1/-1
                if (s[i] == 'x') {
                    if (i < s.length() - 1) {
                        i++;
                        //如果x后面跟的是^,则是二次系数
                        if (s[i] == '^') {
                            if (fushu == 1) a--;
                            else a++;
                            i++;
                        } else {
                            if (fushu == 1) b--;
                            else b++;
                            i--;
                        }
                    } else {
                        if (fushu == 1) b--;
                        else b++;
                    }
                    i++;
                }
            }
        }
        bool youjie = 1;
        double t = b * b - 4 * a * c;
        if (t < 0) {
            cout << "No Solution" << endl;
            youjie = 0;//无解
        }
        if (youjie == 1) {
            double res1 = double(-b + sqrt(t)) / (2 * a);
            double res2 = double(-b - sqrt(t)) / (2 * a);
            if (res1 > res2) swap(res1, res2);
            cout << fixed << setprecision(2) << res1 << " " << res2 << endl;
        }
    }
}
// 64 位输出请用 printf("%lld")