import sys import numpy as np read = sys.stdin.buffer.read readline = sys.stdin.buffer.readline readlines = sys.stdin.buffer.readlines def solve_on_circ(N, A): A0 = A n = (N + 1) // 2 m = N - n A -= n * (n - 1) // 2 + m * (m - 1) // 2 assert A >= 0 x = np.linspace(0, 0.1, n + 1)[::-1] dx = 0.1 / (n + n) y = [] phi = 2 * np.arcsin(0.25) for i in range(m): t = min(n, A) A -= t y.append(phi + x[t] + dx) t = np.concatenate([x[:-1], y]) x = 20 * np.cos(t) y = 20 * np.sin(t) return x, y def other_points(M): x = np.linspace(100, 90000, M) y = np.zeros_like(x) return x, y def solve(N, A, B): left = 0 # B 未満 right = N # B以上 while left + 1 < right: x = (left + right) // 2 if x * (x - 1) // 2 >= B: right = x else: left = x n = right x0, y0 = other_points(N - n) x, y = solve_on_circ(n - 1, A) far = n * (n - 1) // 2 - B eps = 1e-7 x[:far] *= (1 + eps) y[:far] *= (1 + eps) x[far:] *= (1 - eps) y[far:] *= (1 - eps) x = np.concatenate([[0], x, x0]) y = np.concatenate([[0], y, y0]) return x, y N, A, B = map(int, read().split()) x, y = solve(N, A, B) xy = np.vstack([x, y]).T print('\n'.join(' '.join(row) for row in xy.astype(str)))