ps = gets.to_i.times.map { Complex(*gets.split.map(&:to_f)) }
p0 = ps.min_by {|z| [z.imag, z.real] }
p, u, rs = p0, 1, [p0]
TAU = 2 * Math::PI
TAU.freeze
loop do
  m, d, q = TAU, nil, nil
  u_inv = 1 / u
  ps.each do |r|
    next if p == r
    v = r - p
    a = (v * u_inv).arg
    a += TAU if a < 0
    q, m, d = r, a, v.abs if !q || -1e-8 < a - m && a - m < 1e-8 && v.abs < d || a < m
  end
  p, u = q, q - p
  break if p == p0
  rs << p
end
p rs.size
rs.each {|z| puts z.rect.map(&:to_i).join ' ' }