#ifdef DEBUG
#  define _GLIBCXX_DEBUG
#endif
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include "testlib.h"
#define ff first
#define ss second
#define szof(x) ((int)x.size())
#ifndef LOCAL
#  define cerr __get_ce
#endif

using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef unsigned long long ull;

using namespace __gnu_pbds;
template <typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
template <typename K, typename V> using ordered_map = tree<K, V, less<K>, rb_tree_tag, tree_order_statistics_node_update>;

int const INF = (int)1e9 + 1e3;
ll const INFL = (ll)1e18 + 1e6;


int main(int argc, char* argv[]) {
	registerGen(argc, argv, 1);

	int minv = opt<int>("minv");
	int maxv = opt<int>("maxv");
	int cnt = opt<int>("cnt");

	int a = rnd.next(max(2, minv), maxv);
	int b = rnd.next(1, (int) sqrt(a));

	vector<int> as = {-1, a, a, a, a};
	for (int i = 0; i < cnt; i++) {
		if (*max_element(as.begin(), as.end()) <= b) {
			break;
		}
		int pos;
		do {
			pos = rnd.next(1, 4);
		} while (as[pos] <= b);
		as[pos] -= b;	
	}

	for (int i = 1; i <= 4; i++) {
		cout << as[i] << '\n';
	}
	cout << b << '\n';

	return 0;
}