#!/usr/bin/env python3 from math import sqrt n, m = map(int, input().split()) l = float(input()) def dist(p, q): return sqrt((p[0] - q[0]) ** 2 + (p[1] - q[1]) ** 2) p = (0, 0) t = (n, m) ans = [p] while l >= dist(p, t): x, y = p if x == 0: if y % 2 == 0: q = (n, y) else: q = (0, y + 1) elif x == n: if y % 2 == 0: q = (n, y + 1) else: q = (0, y) else: assert False ll = dist(p, q) if l - ll >= dist(q, t): l -= ll p = q ans.append(p) else: # Compute the point on p -> q such that d(p, s) + d(s, t) == l if p[0] == 0 and p[1] == q[1]: y = p[1] x = n - ((m - y) ** 2 - (l - n) ** 2) / (2 * (l - n)) if p[0] == 0 and q[0] == 0: x = p[0] y = m - ((n - x) ** 2 - (l - m + p[1]) ** 2) / (2 * (l - m + p[1])) if p[0] == n: y = p[1] x = n - (l ** 2 - (m - y) ** 2) / (2 * l) p = (x, y) ans.append(p) ans.append(t) break print(len(ans)) for p in ans: print(*p)