Please, try EDU on Codeforces! New educational section with videos, subtitles, texts, and problems.
×

Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

D. Mr. Kitayuta's Colorful Graph

time limit per test

4 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputMr. Kitayuta has just bought an undirected graph with *n* vertices and *m* edges. The vertices of the graph are numbered from 1 to *n*. Each edge, namely edge *i*, has a color *c* _{ i}, connecting vertex *a* _{ i} and *b* _{ i}.

Mr. Kitayuta wants you to process the following *q* queries.

In the *i*-th query, he gives you two integers - *u* _{ i} and *v* _{ i}.

Find the number of the colors that satisfy the following condition: the edges of that color connect vertex *u* _{ i} and vertex *v* _{ i} directly or indirectly.

Input

The first line of the input contains space-separated two integers - *n* and *m*(2 ≤ *n* ≤ 10^{5}, 1 ≤ *m* ≤ 10^{5}), denoting the number of the vertices and the number of the edges, respectively.

The next *m* lines contain space-separated three integers - *a* _{ i}, *b* _{ i}(1 ≤ *a* _{ i} < *b* _{ i} ≤ *n*) and *c* _{ i}(1 ≤ *c* _{ i} ≤ *m*). Note that there can be multiple edges between two vertices. However, there are no multiple edges of the same color between two vertices, that is, if *i* ≠ *j*, (*a* _{ i}, *b* _{ i}, *c* _{ i}) ≠ (*a* _{ j}, *b* _{ j}, *c* _{ j}).

The next line contains a integer- *q*(1 ≤ *q* ≤ 10^{5}), denoting the number of the queries.

Then follows *q* lines, containing space-separated two integers - *u* _{ i} and *v* _{ i}(1 ≤ *u* _{ i}, *v* _{ i} ≤ *n*). It is guaranteed that *u* _{ i} ≠ *v* _{ i}.

Output

For each query, print the answer in a separate line.

Examples

Input

4 5

1 2 1

1 2 2

2 3 1

2 3 3

2 4 3

3

1 2

3 4

1 4

Output

2

1

0

Input

5 7

1 5 1

2 5 1

3 5 1

4 5 1

1 2 2

2 3 2

3 4 2

5

1 5

5 1

2 5

1 5

1 4

Output

1

1

1

1

2

Note

Let's consider the first sample.

- Vertex 1 and vertex 2 are connected by color 1 and 2.
- Vertex 3 and vertex 4 are connected by color 3.
- Vertex 1 and vertex 4 are not connected by any single color.

Codeforces (c) Copyright 2010-2020 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Jul/05/2020 21:12:30 (h3).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|