#include #include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < (int)(n); i++) int main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); int n, m; cin >> n >> m; vector> g(m); for (auto &[l, u, v] : g) { cin >> u >> v >> l; u--; v--; } int Q; cin >> Q; vector> q(Q); int ind = 0; for (auto &[p, t, i] : q) { cin >> p >> t; t--; i = ind; ind++; } sort(g.begin(), g.end()); sort(q.begin(), q.end()); vector ans(Q); atcoder::dsu uf(n); ind = 0; for (auto [p, t, i] : q) { while (ind != m && get<0>(g[ind]) <= p) { auto [l, u, v] = g[ind]; uf.merge(u, v); ind++; } ans[i] = uf.size(t); } rep(i, Q) cout << ans[i] << endl; return 0; }