#include <iostream>

#include <cmath>

#include <iomanip>

using namespace std;

const double ERROR = 1e-11;

 

double theFunction(double x)

{

      x/=20;

      return ((((x+2)*x-52)*x+3)*x+524)*x-329;

}

 

double getX(double low,double high,double target)

{

      double slope=theFunction(high)-theFunction(low);      //for slope sign

      double x=high;

      double y=theFunction(x);

      double prev=x;

      while (fabs(theFunction(x)-target)>ERROR)

      {

            x=(high+low)*0.5;

            y=theFunction(x);

 

            if (prev==y) break;     //found the thing!  maybe

 

            if (y<target && slope>0 || y>target && slope<0) low=x;

            else high=x;

 

            prev=y;

      }

 

      return x;

}

 

 

int main()

{

      double low,high,target;

      cout.fill('0');

      while (cin>>low>>high>>target && (low!=0 || high!=0 || target!=0))

      {

            double x=getX(low,high,target);

 

            if (fabs(theFunction(x)-target)>ERROR) cout<<"Professor, there is no Function...\n";

            else cout<<fixed<<setprecision(4)<<x<<endl;

      }

      return 0;

}