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

#include <iostream.h>

int n,m,q;

int mas[1024][1024];
int qu[100][2];
int a[1024];
int used[1024];
int st[1024];

void read()
{
	int i,x,y,z;
	cin>>n>>m;
	for(i=0;i<m;i++)
	{
		cin>>x>>y>>z;
		mas[x][y]=z+1;
		mas[y][x]=z+1;
	}
	cin>>q;
	for(i=0;i<q;i++)
	{
		cin>>qu[i][0]>>qu[i][1];
	}
}

int main()
{
	long r=0,w=1,i,j,x=4;
	read();
	for(i=0;i<n;i++)
	{
		if(used[i]==0) 
		{
			st[0]=i;
			a[i]=x;
			used[i]=1;
			while(r<w)
			{
				for(j=0;j<n;j++)
				{
					if(mas[st[r]][j]!=0&&used[j]==0)
					{
						st[w]=j;
						used[j]=1;
						w++;
						if(mas[st[r]][j]==1) a[j]=a[st[r]];
						if(mas[st[r]][j]==2&&a[st[r]]==x) a[j]=x+1;
						if(mas[st[r]][j]==2&&a[st[r]]==x+1) a[j]=x;
					}
				}
				r++;
			}
			x=x*2;
			w=1;
			r=0;
			for(j=0;j<n;j++)
			{
				used[i]=0;
				st[i]=0;
			}
		}
	}
	for(i=0;i<q;i++)
	{
		if(a[qu[i][0]]==a[qu[i][1]]) cout<<'0'<<endl;
		else
		{
			if(a[qu[i][0]]!=a[qu[i][1]]&&(((a[qu[i][0]]-a[qu[i][1]])==(-1))||((a[qu[i][0]]-a[qu[i][1]])==1))) cout<<'1'<<endl;
			else cout<<'2'<<endl;
		}
	}
	return 0;
}
