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