#include <bits/stdc++.h>
namespace chtholly {
char buf[1 << 23], *p1 = buf, *p2 = buf;
inline int read() {
  int x = 0, f = 1;
  char c = getchar();
  for (; !isdigit(c); c = getchar()) f ^= c == '-';
  for (; isdigit(c); c = getchar()) x = (x << 3) + (x << 1) + (c ^ '0');
  return f ? x : -x;
}
template <typename mitsuha>
inline bool read(mitsuha &x) {
  x = 0;
  int f = 1;
  char c = getchar();
  for (; !isdigit(c) && ~c; c = getchar()) f ^= c == '-';
  if (!~c) return 0;
  for (; isdigit(c); c = getchar()) x = (x << 3) + (x << 1) + (c ^ '0');
  return x = f ? x : -x, 1;
}
template <typename mitsuha>
inline int write(mitsuha x) {
  if (!x) return 0 & putchar(48);
  if (x < 0) putchar('-'), x = -x;
  int bit[20], i, p = 0;
  for (; x; x /= 10) bit[++p] = x % 10;
  for (i = p; i; --i) putchar(bit[i] + 48);
  return 0;
}
inline char fuhao() {
  char c = getchar();
  for (; isspace(c); c = getchar())
    ;
  return c;
}
}  // namespace chtholly
using namespace chtholly;
using namespace std;
const int yuzu = 5e5;
typedef int fuko[yuzu | 10];
typedef vector<pair<int, int> > tsukihi[yuzu | 10];
tsukihi lj, qu;
fuko x, y, w, ans;
namespace dsu {
fuko fa, nfa, vis;
void init(int n) {
  for (int i = 1; i <= n; ++i) fa[i] = i;
}
int find(int x) { return fa[x] ^ x ? fa[x] = find(fa[x]) : x; }
int mg(int u, int v) {
  int fu = find(u), fv = find(v);
  return fu ^ fv ? fa[fu] = fv, 1 : 0;
}
int fd(int u) {
  if (vis[u] ^ *ans) vis[u] = *ans, nfa[u] = fa[u];
  return u ^ nfa[u] ? nfa[u] = fd(nfa[u]) : u;
}
}  // namespace dsu
using dsu::fd;
int main() {
  int i, n, m, q, k, b;
  read(n), read(m), dsu::init(n);
  for (i = 1; i <= m; ++i)
    x[i] = read(), y[i] = read(), w[i] = read(),
    lj[w[i]].push_back(pair<int, int>(x[i], y[i]));
  for (read(q), i = 1; i <= q; ++i)
    for (k = read(); k--; qu[w[b]].push_back(pair<int, int>(i, b))) b = read();
  for (i = 1; i <= yuzu; ++i) {
    int lat = -1;
    for (auto p : qu[i]) {
      if (lat ^ p.first) ++*ans, lat = p.first;
      int fu = fd(x[p.second]), fv = fd(y[p.second]);
      fu ^ fv ? dsu::nfa[fu] = fv : ans[lat] = 1;
    }
    for (auto p : lj[i]) dsu::mg(p.second, p.first);
  }
  for (i = 1; i <= q; ++i) puts(ans[i] ? "NO" : "YES");
}
