/*
#pragma GCC optimize("Ofast")
#pragma GCC optimize ("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
*/
 
//opray
 
#include <bits/stdc++.h>
 
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/detail/standard_policies.hpp>
 
using namespace std;
using namespace __gnu_pbds;
 
template<typename T> using oset =
tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

template<typename T> using omultiset =
tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>;
 
template<typename Key, typename T> using omap =
tree<Key, T, less<Key>, rb_tree_tag, tree_order_statistics_node_update>;
 
#define pb push_back
#define pf push_front
#define rb pop_back
#define rf pop_front
 
#define eb emplace_back
 
#define fi first
#define se second
 
#define endl "\n"
 
#define pii pair<int, int>

#define max(a, b) max((int) a, (int) b);

#define int long long
#define multiTest int test; cin >> test; while(test--)
#define speed ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
 
void toFile(string name) {
	freopen((name + ".inp").c_str(), "r", stdin);
	freopen((name + ".out").c_str(), "w", stdout);
}
 
void toFile2(string name) {
	freopen("lscin.txt", "r", stdin);
	freopen("lscout.txt", "w", stdout);
}
 
int ceil(int a, int x) {
	return (a % x == 0 ? a / x : a / x + 1);
}
 
const int mod = 1e9 + 7;
const int inf = 9e18;

const int mxN = 1e5 + 5;

vector<pii> g[mxN];

void solve() {
	int a, b, c;
	cin >> a >> b >> c;

	if(a == 0) {
		if(b == 0) {
			if(c == 0) cout << -1;
			else cout << 0;
		} else {
			cout << (double) -c / b;
		}
	} else {
		int delta = b * b - 4 * a * c;
		if(delta < 0) cout << 0;
		else if(delta == 0) {
			cout << 1 << endl;
			cout << -b / (2 * a);
		} else {
			cout << 2 << endl;
			cout << fixed << setprecision(9) << (-b - sqrt(delta)) / (2 * a) << endl << (-b + sqrt(delta)) / (2 * a);
		}
	}
}

signed main() {
	speed;
 
 	//toFile("a");
 
	//multiTest
	solve();
 
	return 0;
}