#!/usr/bin/env python3 # This solution is WA, but sadly we cannot catch the error in here. 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: y = m - p[1] x = n - (y ** 2 - (l - n) ** 2) / (2 * (l - n)) if p[0] == n: y = m - p[1] x = n - (l ** 2 - y ** 2) / (2 * l) p = (x, p[1]) ans.append(p) ans.append(t) break print(len(ans)) for p in ans: print(*p)