/*
TASK: Y1984
LANG: C++
*/

#include <cstdio>
#include <vector>
using namespace std;

const int MAXN = 1024;
int n,m;
vector < vector < int > > fr(MAXN); // friends
vector < vector < int > > en(MAXN); // enemies
int group[MAXN];

int main()
{
//	printf("here");
//	freopen("y1984.in","r",stdin);
	scanf("%d%d",&n,&m);
    for ( int i = 0 ; i < m ; i++ )
    {
    	int t1,t2,r;
        scanf("%d%d%d",&t1,&t2,&r);
        if ( !r )
        {
        	fr[t1].push_back(t2);
            fr[t2].push_back(t1);
        }
        else
        {
        	en[t1].push_back(t2);
            en[t2].push_back(t1);
        }
    }
    int qn;
    scanf("%d",&qn);
    vector <pair<int,int> > q;
	for ( int i = 0 ; i < qn ; i++ )
    {
    	int t1,t2;
        scanf("%d%d",&t1,&t2);
        q.push_back(pair<int,int>(t1,t2));
    }
    
    for ( int i = 0 ; i < n ; i++ ) group[i] = i;
	for ( int i = 0 ; i < n ; i++ )
    	for ( int j = 0 ; j < fr[i].size() ; j++ )
        	group[fr[i][j]] = group[i];


    for ( int i = 0 ; i < n ; i++ )
    	for ( int j = en[i].size()-1 ; j >= 0 ; j-- )
        	for ( int k = 0 ; k < n ; k++ )
            	if ( group[en[i][j]] == group[k] && en[i][j] != k )
                {
        	    	en[i].push_back(k);
	                en[k].push_back(i);
    	        }

    for ( int i = 0 ; i < n ; i++ )
    	for ( int j = 1 ; j < en[i].size() ; j++ )
			group[en[i][j]] = group[en[i][j-1]];
/*
    for ( int i = 0 ; i < n ; i++ )
    {
    	printf("%d: ",i);
        for ( int j = 0 ; j < en[i].size() ; j++ )
        	printf("%d ",en[i][j]);
        printf("\n");
    }

    for ( int i = 0 ; i < n ; i++ )
    	printf("%d ",group[i]);
	printf("\n");
*/
    for ( int i = 0 ; i < qn ; i++ )
    {
    	if ( group[q[i].first] == group[q[i].second] )
        {
        	printf("0\n");
            continue;
        }
        int flag = 0;
        for ( int j = 0 ; j < en[q[i].first].size() ; j++ )
        	if ( en[q[i].first][j] == q[i].second )
            {
            	printf("1\n");
                flag = 1;
                break;
            }
        if ( !flag ) printf("2\n");
    }
        
    return 0;
}
