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

The problem statement has recently been changed. View the changes.

×
C. Envy

time limit per test

2 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputFor a connected undirected weighted graph *G*, MST (minimum spanning tree) is a subgraph of *G* that contains all of *G*'s vertices, is a tree, and sum of its edges is minimum possible.

You are given a graph *G*. If you run a MST algorithm on graph it would give you only one MST and it causes other edges to become jealous. You are given some queries, each query contains a set of edges of graph *G*, and you should determine whether there is a MST containing all these edges or not.

Input

The first line contains two integers *n*, *m* (2 ≤ *n*, *m* ≤ 5·10^{5}, *n* - 1 ≤ *m*) — the number of vertices and edges in the graph and the number of queries.

The *i*-th of the next *m* lines contains three integers *u*_{i}, *v*_{i}, *w*_{i} (*u*_{i} ≠ *v*_{i}, 1 ≤ *w*_{i} ≤ 5·10^{5}) — the endpoints and weight of the *i*-th edge. There can be more than one edges between two vertices. It's guaranteed that the given graph is connected.

The next line contains a single integer *q* (1 ≤ *q* ≤ 5·10^{5}) — the number of queries.

*q* lines follow, the *i*-th of them contains the *i*-th query. It starts with an integer *k*_{i} (1 ≤ *k*_{i} ≤ *n* - 1) — the size of edges subset and continues with *k*_{i} distinct space-separated integers from 1 to *m* — the indices of the edges. It is guaranteed that the sum of *k*_{i} for 1 ≤ *i* ≤ *q* does not exceed 5·10^{5}.

Output

For each query you should print "YES" (without quotes) if there's a MST containing these edges and "NO" (of course without quotes again) otherwise.

Example

Input

5 7

1 2 2

1 3 2

2 3 1

2 4 1

3 4 1

3 5 2

4 5 2

4

2 3 4

3 3 4 5

2 1 7

2 1 2

Output

YES

NO

YES

NO

Note

This is the graph of sample:

Weight of minimum spanning tree on this graph is 6.

MST with edges (1, 3, 4, 6), contains all of edges from the first query, so answer on the first query is "YES".

Edges from the second query form a cycle of length 3, so there is no spanning tree including these three edges. Thus, answer is "NO".

Codeforces (c) Copyright 2010-2020 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Oct/28/2020 00:32:34 (h3).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|