N = gets.to_i
P = N.times.map { |i| gets.split.map(&:to_i) + [i] }

P.sort_by! { |x, y| [x, y] }
ans = []

while P.size >= 2
  u, v = P.shift(2)

  ans << "#{u.last + 1} #{v.last + 1}"
end

puts ans.size
puts ans