using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; class TEST{ static void Main(){ Sol mySol =new Sol(); mySol.Solve(); } } class Sol{ public void Solve(){ Func> solve2 = (a, b, c) =>{ var ret = new List(){ (-b - Math.Sqrt(b * b - 4 * a * c)) / (2 * a), (-b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a), }; ret.Sort(); return ret; }; Func f = x => x*x*x + (double) A * x * x + (double) B * x + (double) C; Func nf = x => -f(x); Func fl = x => x*x*x + A * x * x + B * x + C; var ps = solve2(3, 2*(double)A, (double) B); Func,double,double,double> bins = (g, l, r) =>{ double Eps = 1e-9; for(int t=0;t<100;t++){ double c = (l + r) / 2.0; if(g(c) < -Eps){ l = c; } else { r = c; } } return (l + r) / 2.0; }; Func> lins = t =>{ var ret = new List(); for(long x = (long) t - 200; x < (long) t + 200;x++){ if(fl(x) == 0) ret.Add(x); } return ret; }; List candi = new List(){ bins(f, -1.1e9, ps[0]), bins(nf, ps[0], ps[1]), bins(f, ps[1], 1.1e9), }; HashSet H = new HashSet(); foreach(var xx in candi){ var xls = lins(xx); foreach(var xl in xls) H.Add(xl); } var ans = H.ToList(); ans.Sort(); Console.WriteLine(String.Join(" ",ans)); } long A,B,C; public Sol(){ var d = rla(); A = d[0]; B = d[1]; C = d[2]; } static String rs(){return Console.ReadLine();} static int ri(){return int.Parse(Console.ReadLine());} static long rl(){return long.Parse(Console.ReadLine());} static double rd(){return double.Parse(Console.ReadLine());} static String[] rsa(char sep=' '){return Console.ReadLine().Split(sep);} static int[] ria(char sep=' '){return Array.ConvertAll(Console.ReadLine().Split(sep),e=>int.Parse(e));} static long[] rla(char sep=' '){return Array.ConvertAll(Console.ReadLine().Split(sep),e=>long.Parse(e));} static double[] rda(char sep=' '){return Array.ConvertAll(Console.ReadLine().Split(sep),e=>double.Parse(e));} }