#include using i64 = long long; using u64 = unsigned long long; using u32 = unsigned; using u128 = unsigned __int128; using i128 = __int128; int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int N, M; std::cin >> N >> M; std::vector>> adj(N); for (int i = 0; i < M; i++) { int u, v, l; std::cin >> u >> v >> l; u--; v--; adj[u].push_back({v, l}); adj[v].push_back({u, l}); } auto bfs = [&](int s, int p) -> int { int ret = 1; std::vector vis(N); vis[s] = true; std::queue q; q.push(s); while (!q.empty()) { int u = q.front(); q.pop(); for (auto [v, w] : adj[u]) { if (!vis[v]) { if (w <= p) { ret++; q.push(v); vis[v] = true; } } } } return ret; }; int Q; std::cin >> Q; while (Q--) { int P, T; std::cin >> P >> T; T--; std::cout << bfs(T, P) << '\n'; } return 0; }