K = gets.to_i
x, y = gets.split.map(&:to_i)

sx, sy = 1, 1
if x < 0 then sx = -1; x *= -1 end
if y < 0 then sy = -1; y *= -1 end
sz = false
if x < y
  sz = true
  x, y = y, x
end

ans = []

if K.even? && (x + y) % 2 == 1
  puts -1
  exit
end

cx, cy = 0, 0
while ((x - cx).abs + (y - cy).abs) > 2*K
  dy = [(y - cy).abs, K].min
  dx = [(x - cx).abs, K - dy].min
  cx += dx
  cy += dy
  ans << [cx, cy]
end

dx = x - cx
dy = y - cy

if dx + dy == K
  ans << [x, y]
elsif (dx + dy) % 2 == 0
  a = (2*K - dx - dy) / 2
  b = K - a
  c = dx - K + a
  d = K - c
  cy -= a
  cx += b
  ans << [cx, cy]
  cx += c
  cy += d
  ans << [cx, cy]
else
  a = (K - dx - dy) / 2
  b = K - a
  c = dx + a
  d = K - c
  cy -= a
  cx += b
  ans << [cx, cy]
  cx += c
  cy += d
  ans << [cx, cy]
  cx -= K
  ans << [cx, cy]
end

puts ans.size
ans.each do |e|
  if sz
    e[0], e[1] = e[1], e[0]
  end
  puts "#{e[0]*sx} #{e[1]*sy}"
end