K = gets.to_i
X, Y = gets.split.map(&:to_i)
A, B = [X.abs, Y.abs].min, [X.abs, Y.abs].max

def solve()
  return nil if K.even? && (A + B).odd?

  res = []

  if K <= B
    x = y = 0
    d = (K - A - B) % K
    unless d.zero?
      i = d / 2
      i += K / 2 + 1 if d.odd?
      res << [x - i, y + K - i]
      x += -i
      y += K - i
    end
    until x == A && y == B
      a = A - x
      b = B - y
      dx = [a, K].min
      dy = [b, K - dx].min
      res << [x + dx, y + dy]
      x += dx
      y += dy
    end
  else
    if A + B == K
      res << [A, B]
    elsif (A + B).even?
      i = B - A
      res << [K - i, i]
      res << [A, B]
      raise "2"
    else
      x = K - (K / 2)
      y = 0 - (K / 2)
      res << [x, y]
      x -= K
      i = (A + B) / 2
      res << [x + i, y + i]
      res << [A, B]
    end
  end

  res
end

score = solve

unless score
  puts -1
else
  puts score.size, score.map{|x, y|
    x, y = y, x if X.abs > Y.abs
    y    = -y   if Y < 0
    x    = -x   if X < 0
    "#{x} #{y}"
  }
end
