/* Christoph Schwirzer */
#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef vector<int> VI;
int a[4];
void doit(int f, int m, int sum, int k, const VI &divisors)
{
	if (k == 0)
	{
		if (sum || f != 1)
			return;
		for (int i=0; i<4; i++)
			printf("%.2lf%c", a[i] * 0.01, i==3 ? '\n' : ' ');
	}
	for (VI::const_iterator it = divisors.begin(); it != divisors.end() && *it <= sum; ++it)
	{
		if (*it < m || f % *it != 0)
			continue;
		{
			a[4-k] = *it;
			doit(f / *it, *it, sum - *it, k - 1, divisors);
		}
	}
}

int main()
{
	for (int i=1; i<=2000; i++)
	{
		VI divisors;
		for (int j=1; j<=i; j++)
			if ((i * 1000000) % j == 0)
				divisors.push_back(j);
		doit(i * 1000000, 1, i, 4, divisors);
	}
	return 0;
}
