Загрузка данных


import sys

def solve():
    try:
        n = int(input())
        orig_x = int(input())
        orig_y = int(input())
    except (EOFError, ValueError):
        return

    flip_x = orig_x < 0
    flip_y = orig_y < 0

    x = abs(orig_x)
    y = abs(orig_y)
    dist = x + y

    if n < dist or (n - dist) % 2 != 0:
        print(-1)
        return

    k = (n - dist) // 2
    path = []

    if y > 0:
        for i in range(k + 1):
            path.append((-i, 0))
        for i in range(k, -1, -1):
            path.append((-i, 1))
        for i in range(1, x + 1):
            path.append((i, 1))
        for j in range(2, y + 1):
            path.append((x, j))
    else:
        for j in range(k + 1):
            path.append((0, -j))
        for j in range(k, -1, -1):
            path.append((1, -j))
        for i in range(2, x + 1):
            path.append((i, 0))

    output = []
    for pt in path:
        px, py = pt
        if flip_x:
            px = -px
        if flip_y:
            py = -py
        output.append(f"{px} {py}")

    print("\n".join(output))

if __name__ == '__main__':
    solve()