Cabos sem cruzamentos
Há terminais em pontos distintos de uma circunferência, numerados de a em ordem no sentido horário. Uma lista informa os pares de terminais que podem ser ligados por cabos. Cada cabo é o segmento de reta entre seus dois terminais.
Uma rede válida escolhe exatamente cabos da lista, conecta todos os terminais e não tem cruzamentos: dois cabos podem compartilhar um terminal, mas seus interiores não podem se intersectar.
Conte quantas redes válidas existem. Redes são diferentes quando seus conjuntos de cabos são diferentes. As coordenadas dos terminais não são fornecidas, pois apenas sua ordem ao redor da circunferência importa.
Input
A primeira linha contém e (, ). Cada uma das próximas linhas contém dois inteiros e (), indicando um cabo permitido. Não há pares repetidos. A lista não precisa permitir conectar todos os terminais.
Output
Imprima o número de redes válidas módulo .
Samples
Sample 1
Input
3 3 1 2 1 3 2 3
Output
3
Qualquer escolha de dois dos três cabos é válida.
Sample 2
Input
4 3 1 2 1 3 2 4
Output
0
Os três cabos seriam necessários para conectar todos os terminais, mas e se cruzam.
Sample 3
Input
4 6 1 2 1 3 1 4 2 3 2 4 3 4
Output
12
Existem 16 árvores com esses quatro terminais e todos os pares permitidos. Exatamente quatro contêm os dois cabos que se cruzam, restando 12 redes válidas.