São dados vários pontos no plano. Os pontos são numerados consecutivamente a partir de $1$, e cada número é atribuído a exatamente $2$ pontos, que formam um par. Assim, o número total de pontos é necessariamente par. Queremos ligar dois pontos com o mesmo número por um retângulo do qual sejam vértices opostos. Chamamos a esse retângulo um retângulo de ligação. O problema consiste em encontrar vários retângulos de ligação que não se sobreponham e satisfaçam as três condições seguintes.
(Condição 1) Os vértices opostos de um retângulo de ligação têm de ser pontos com o mesmo número. Não se podem ligar por um retângulo pontos com números diferentes.
(Condição 2) Todos os retângulos de ligação têm de estar separados entre si. A situação da figura 1 não é permitida. Também não é permitido que os lados ou vértices de dois retângulos se toquem, como na figura 2, nem que um retângulo esteja contido dentro de outro, como na figura 3.
(Condição 3) A pontuação obtida ao formar um retângulo de ligação é igual ao número atribuído ao seu par de pontos.
Escreva um programa que obtenha a maior pontuação respeitando as condições anteriores.
Entrada
A primeira linha contém o número de pares.
As linhas seguintes contêm as coordenadas dos dois pontos de cada par, pela ordem dos números a partir de $1$.
Existem no máximo $50$ pares ($100$ pontos). Cada coordenada é um inteiro positivo não superior a $100$.
Os dois pontos de um par não pertencem à mesma reta vertical nem à mesma reta horizontal.
Saída
Na primeira linha, imprima o número de pares escolhidos. Na linha seguinte, imprima os números dos retângulos de ligação escolhidos por ordem crescente.
Exemplos
Entrada 1
6 2 5 1 3 5 6 3 2 5 2 6 4 7 6 5 8 1 6 5 4 3 7 7 3
Saída 1
3 1 3 4