K = gets.to_i
X, Y = gets.split.map(&:to_i)

def go(x, y)
  case
  when x < 0
    x, y = go(-x, y)
    [-x, y]
  when y < 0
    x, y = go(x, -y)
    [x, -y]
  when x > y
    x, y = go(y, x)
    [y, x]
  when x + y >= 2*K
    [x, y - K]
  when x + y == K
    [0, 0]
  else
    d = K - (x + y)/2
    [-d, y - K + x + d]
  end
end

if K.even? && (X + Y).odd?
  puts -1
else
  res, x, y = [], X, Y
  until [x, y] == [0, 0]
    res << [x, y]
    x, y = go(x, y)
  end
  puts res.size
  res.reverse_each{|a| puts a.join(' ')}
end