Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.

L0118 - Linhas de MetrĂ´

O sistema de metrô de uma grande cidade é formado por um conjunto de estações e por túneis que ligam alguns pares de estações. O sistema foi desenhado de forma que existe exatamente uma sequência de túneis ligando qualquer par de estações. As estações nas quais apenas um túnel chega são chamadas de terminais. Há várias linhas de trens que fazem viagens de ida e volta entre duas estações terminais, transitando pelo caminho único entre elas. A população está reclamando das linhas atuais e, por isso, o prefeito ordenou uma reformulação total das linhas. Como o sistema possui muitas estações, nós precisamos ajudar os engenheiros que estão tentando decidir quais pares de terminais passarão a definir uma linha.

A figura ilustra um sistema onde as estações terminais são mostradas como círculos preenchidos e as não-terminais são mostradas como círculos vazios. Na parte esquerda, veja que se o par (A,B) definir uma linha e o par (C,D) definir outra, elas não terão qualquer estação em comum. Mas, na parte direita, podemos ver que se os pares (E,F) e (G,H) definirem duas linhas, elas terão duas estações em comum.

Dada a descrição do sistema de túneis e uma sequência de Q consultas constituídas de dois pares de terminais, seu programa deve computar, para cada consulta, quantas estações em comum as linhas definidas pelos dois pares teriam.

Entrada

A primeira linha da entrada contém dois inteiros N (5 ≤ N ≤ 105 ) e Q (1 ≤ Q ≤ 20000), representando respectivamente o número de estações e o número de consultas. As estações são numeradas de 1 até N. Cada uma das N −1 linhas seguintes contém dois inteiros distintos U e V , 1 ≤ UV ≤ N, indicando que existe um túnel entre as estações U e V . Cada uma das Q linhas seguintes contém quatro inteiros distintos ABC e D (1 ≤ ABCD ≤ N), representando uma consulta: as duas linhas de trem são definidas pelos pares (AB) e (CD).

Saida

Para cada consulta, seu programa deve imprimir uma linha contendo um inteiro representando quantas estações em comum teriam as duas linhas de trem definidas pela consulta.

Exemplo

Entrada:
10 4
1 4
4 5
3 4
3 2
7 3
6 7
7 8
10 8
8 9
6 10 2 5
1 9 5 10
9 10 2 1
5 10 2 9

Saída:
0
4
0
3
Entrada:
5 1
1 5
2 5
5 3
5 4
1 2 3 4

Saída:
1

Added by:IFTM_Maratona
Date:2022-10-31
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:C
Resource:Maratona SBC_Medio_Grafo
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.