#include <bits/stdc++.h>
using namespace std;
int dx[] = {1, 1, 0, -1, -1, -1, 0, 1};
int dy[] = {0, 1, 1, 1, 0, -1, -1, -1};
int di[] = {1, -1, 0, 0};
int dj[] = {0, 0, 1, -1};
void file() {}
int n, m, u, v, c, vis[101], q;
vector<pair<int, int> > arr[101];
int col;
int ans[101];
void dfs(int x, int y, int clr) {
  if (vis[x]) return;
  vis[x] = 1;
  if (x == y) {
    ans[clr] = 1;
    return;
  }
  for (int i = 0; i < ((int)((arr[x]).size())); i++) {
    if (arr[x][i].second == clr) dfs(arr[x][i].first, y, clr);
  }
}
int main() {
  file();
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; i++) {
    scanf("%d%d%d", &u, &v, &c);
    arr[u].push_back({v, c});
    arr[v].push_back({u, c});
  }
  scanf("%d", &q);
  for (int i = 0; i < q; i++) {
    scanf("%d%d", &u, &v);
    for (int i = 0; i < ((int)((arr[u]).size())); i++) {
      dfs(u, v, arr[u][i].second);
      memset(vis, 0, sizeof vis);
    }
    int cnt = 0;
    for (int i = 0; i <= m; i++) {
      cnt += ans[i];
    }
    printf("%d\n", cnt);
    memset(ans, 0, sizeof ans);
  }
}
