class dsu: n = 1 parent_or_size = [-1 for i in range(n)] def __init__(self, N): self.n = N self.parent_or_size = [-1 for i in range(N)] def merge(self, a, b): assert 0 <= a < self.n, "0<=a 0: result2.append(result[i]) return result2 n, m = list(map(int, input().split())) E = [] for _ in range(m): u, v, w = list(map(lambda x: int(x)-1, input().split())) E.append((w+1, u, v)) q = int(input()) Ans = [-1] * q for i in range(q): p, t = list(map(int, input().split())) E.append((p, n+t-1, i)) E.sort() uf = dsu(n) for _, u, v in E: if u < n: uf.merge(u, v) else: Ans[v] = uf.size(u-n) for ans in Ans: print(ans)